Sp33dy G0nz4l3s: AND ? Was ist falsch

Hi ich rufe mit folgendem Code Daten aus einer Datenbank ab:

$sql = "SELECT * FROM zubehoer WHERE name LIKE '%$search%' AND kategorie='Säfte' ORDER BY name ASC";

Leider wird kategorie='Säfte' irgendwie nicht berücksichtigt, denn es werden auch Daten aus der kategorie Zubehör angezeigt.

Ist dieser Code so falsch?

Danke für eure Hilfe.

  1. $sql = "SELECT * FROM zubehoer WHERE name LIKE '%$search%' AND kategorie='Säfte' ORDER BY name ASC";

    Leider wird kategorie='Säfte' irgendwie nicht berücksichtigt, denn es werden auch Daten aus der kategorie Zubehör angezeigt.

    Ist dieser Code so falsch?

    Aus welchen Tabellen sollen die Daten denn kommen? Verstehst Du Deine Abfrage?

  2.   
    SELECT  
     *  
    FROM  
     zubehoer  
    WHERE  
     (  
      (name LIKE '%$search%') AND  
      (kategorie='Säfte')  
     )  
    ORDER BY  
     name ASC  
    
    

    Leider wird kategorie='Säfte' irgendwie nicht berücksichtigt, denn es werden auch Daten aus der kategorie Zubehör angezeigt.

    Ist dieser Code so falsch?

    Was mir da noch einfällt ist, dass 'name' ein reserviertes Wort sein könnte oder das es ein Umlauteproblem gibt. Zudem würde ich den Inhalt von $search gerne mal sehen, also das tatsächlich versandte SQL.

    1. Vielen Dank für deine Hilfe King^Lully

      Das Problem hab ich jetzt gelöst.. war ein bisschen blöd

      War in der falschen Zeile^^

  3. $sql = "SELECT * FROM zubehoer WHERE name LIKE '%$search%' AND kategorie='Säfte' ORDER BY name ASC";

    Leider wird kategorie='Säfte' irgendwie nicht berücksichtigt, denn es werden auch Daten aus der kategorie Zubehör angezeigt.

    Ist dieser Code so falsch?

    ich sehe keinen Fehler. Es kann sein, dass du ein Zeichnesatz Problem hast (wegen dem ö)

    und ist die Variabel $search sicher?
    Das sieht nach einem typischen sql-injection Einfallstor aus.

    Struppi.