for Schleife in select. Geht das?

Spelmann

Erfahrenes Mitglied
Hallo liebe Wissenden.
Ich habe mir eine SQL Abfrage mit LIKE zusammengestottert. (Die anderen Methoden habe ich nicht verstanden)

Es existiert ein Array namens $produktsuche.
Durchsucht werden soll nur die Spalte suchbegriffe.
Schreibe ich meine Abfrage so, funktioniert sie. (Vorrausgesetzt es wurden 3 Suchbegriffe eingegeben natürlich):
Code:
$db->query('SELECT * FROM produkte WHERE suchbegriffe LIKE "%'.$produktsuche[0].'%" AND suchbegriffe LIKE "%'.$produktsuche[1].'%" AND suchbegriffe LIKE "%'.$produktsuche[2].'%" ')


Fein dachte ich, dann brauche ich ja nur eine Schleife reinzufummeln und so lange nach weiteren Begriffen suchen wie mein Array Werte hat.
Code:
$db->query('SELECT * FROM produkte WHERE suchbegriffe LIKE "%'.$produktsuche[0].'%" '.for($ii=1 ; $ii<count($produktsuche) ; $ii++){.' AND suchbegriffe LIKE "%'.$produktsuche[$ii] }.'%" '.}.' ')


Dies funktioniert allerdings nicht. Ich bekomme die Fehlermeldung:
Code:
Parse error: syntax error, unexpected T_FOR

Bedeutet das, dass ich mich nur bei den Anführungszeichen verhaspel, oder bin ich völlig auf dem Holzweg?

Bitte keine Disskusion welche Funktionen schneller oder besser oder bunter sind.
Ich würde schon gerne bei o.g. Prinzip bleiben. Vorrausgesetzt es geht so überhaupt natürlich.


Vielen Dank!
 
Das heißt, dass dein Ansatz falsch ist.
PHP:
$sql =  'SELECT * FROM `produkte` WHERE `suchbegriffe` LIKE ';
$sql .= '"%'.implode('%" AND `suchbegriffe` LIKE  "%', $produktsuche).'%"';

$db->query($sql);
 
Zurück