Aaaalso, des ist jetzt vllt. ein bisschen schwer verständlich, aber ich hoff man versteht ansatzweise, was ich machen will. :-)
Es geht um eine Suchfunktion. Die Suche ist zum Beispiel "alles klar". Per PHP wird der String "exploded" und in Teilstrings eingeteilt.
Der Query dazu:
mysql_query("SELECT * FROM tab WHERE feld LIKE '%$Explode[0]%'
OR feld LIKE '%$Explode[1]%'")
Das Problem ist, dass ich nicht davon ausgehen kann, dass das Suchwort aus 2 Teilwörtern besteht, d.h. wenn das Suchwort anstatt "alles klar" "alles" ist, dann wär $Explode[1] leer, was zu einem Vergleich feld LIKE '%%' führt und somit alles selectiert.
Ich bräuchte so ne Art if-Anweisung im Query, hab da schon ein bisschen rumprobiert, is aber nix rausgekommen.
Wie ist das ganze mittels PHP lösbar? Oder gibts da was seitens SQL?
WL
Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge
Wie ist das ganze mittels PHP lösbar? Oder gibts da was seitens SQL?
Muß Du in PHP machen, zumal Du die Abfrage auch noch umbedingt unter allen Umständen Escapen solltest. Stichwort SQL-Injections.
Einfach das Array durchlaufen, für jeden Eintrag die nötige Abfrage generieren und anschließend zusammenbasteln:
Gruß
Borlander
Muß Du in PHP machen, zumal Du die Abfrage auch noch umbedingt unter allen Umständen Escapen solltest. Stichwort SQL-Injections.
Einfach das Array durchlaufen, für jeden Eintrag die nötige Abfrage generieren und anschließend zusammenbasteln:
$where_feld = array();
foreach($Explode as $word) {
$where_feld[]= 'feld LIKE "%'.mysql_real_escape_string($word, $db_connection).'%"';
}
$where = count($where_feld)
? 'WHERE '.implode(' OR ', $where_feld)
: '';
$query = 'SELECT * FROM tab '.$where
Gruß
Borlander