Suchfunktion


CreativPur

Erfahrenes Mitglied
Hallo,
ich habe mir eine kleine Suchfunktion gebastelt.

Leider habe ich noch einen Fehler in der WHERE-Klausel, den ich nicht finde.

Es sollen nur die Artikel ausgegeben werden, die ich in das Such-Formular eingebe und per Hidden-Feld die Firma bestimme.

Beispiel:
Das Hidden-Feld hat der Wert "CreativPur" und das Suchwort lautet "Hukla".

Dann möchte ich nur alle "Hukla's" der Firma "CrerativPur ausgeben".

Mein Formular:

HTML:
<form action="test.php?artikel_suchen_liste" method="post">
    suchen nach:
    <input type="hidden" name="firmenname" value="<?php echo $kunde['firmenname'] ?>">
    <input type="text" name="seach" id="seach">
    <input type="submit" value="suchen">
</form>
Mein Select

PHP:
if(isset($_GET['artikel_suchen_liste'])) {
$error = false;
$seach = $_POST['seach'];
$firmenname = $_POST['firmenname'];
echo $firmenname;
$sql = "SELECT
artikelnummer,
artikelname,
artikelbezeichnung,
herstellername
FROM artikel WHERE von_firma = '$firmenname' AND
LIKE '%$seach%' OR artikelnummer
LIKE '%$seach%' OR artikelname
LIKE '%$seach%' OR artikelbezeichnung
LIKE '%$seach%' OR herstellername 
";
foreach ($pdo->query($sql) as $artikelausgabe) {
    
    
    .....Ausgabe-Tabelle....
        
    }
}

Worin liegt der Fehler ???
 

m.scatello

Mitglied
Versuche es mal mit
PHP:
$sql = "SELECT
         `artikelnummer`,
         `artikelname`,
         `artikelbezeichnung`,
         `herstellername`
       FROM
         `artikel`
       WHERE
         `von_firma` = '$firmenname'
       AND
       (
          `artikelnummer` LIKE '%$seach%'
         OR
          `artikelname` LIKE '%$seach%'
         OR
          `artikelbezeichnung` LIKE '%$seach%'
         OR
          `herstellername` LIKE '%$seach%'
       )";
 

CreativPur

Erfahrenes Mitglied
Vielen Dank..

Ich habe es folgend gelöst:

PHP:
if(isset($_GET['artikel_suchen_liste'])) {
                        $error = false;
                        $firmenname = $kunde['firmenname'];   
                        $seach = $_POST['seach'];
                        $sql = "SELECT artikelnummer, artikelname, artikelbezeichnung, herstellername
                        FROM artikel
                        WHERE
                        von_firma = '$firmenname' AND artikelnummer LIKE '$seach%'
                        OR von_firma = '$firmenname' AND artikelname LIKE '$seach%'
                        OR von_firma = '$firmenname' AND artikelbezeichnung LIKE '$seach%'
                        OR von_firma = '$firmenname' AND herstellername LIKE '$seach%'
                        ";
                        foreach ($pdo->query($sql) as $artikelausgabe) {
 

ComFreek

Mod | @comfreek
Moderator
Leider enthält jeder hier gepostete Quelltext Sicherheitslücken (SQL Injection, LIKE Pattern Injection).
 

Neue Beiträge