Mailinglisten-Archive |
> Henrik Jahn wrote on Thursday, May 17, 2001 3:46 PM > To: php_(at)_phpcenter.de [...] > > Hallo zusammen, > > wie schaffe ich es, in einer query ALLE Elemente eines Arrays abzufragen? > So sieht mein Beispiel aus: > > foreach($suche as $val){ > > $result=mysqlquery("SELECT bla, blubb FROM schwall WHERE xy LIKE > 'x$valx'") > } > > Es wird immer nur das Ergebnis für das LETZTE element ausgegeben. > Was mache ich falsch? [...] 1) $result wird bei jeder Runde überschrieben : vorher retten 2) Man lerne (mal wieder) SQL: Zumindest nach der gezeigten Schreibweise ist LIKE nicht erforderlich, weil keine Platzhalter verwendet werden. Besser ist deshalb IN: $val = implode(",", $suche); # macht aus Array eine Liste $val = "($val)"; # bastelt Klammern drum herum $result = mysql_query("SELECT bla, blubb FROM schwall WHERE xy IN $val"); Falls LIKE dennoch erforderlich ist und die x eigentlich % sein sollten, sei an REGEXP erinnert, damit lassen sich reguläre Ausdrücke in der DB ausführen, die bei kleinen Arrays eine Alternative sind: $val = implode("|"), $suche); $result = mysql_query("SELECT bla, blubb FROM schwall WHERE xy REGEXP '$val'"); Jörg ---------------------------------------------------- E-Mail: joerg_(at)_krause.net Info: www.joerg.krause.net Kennen Sie schon den Topseller zu PHP4? Hier gibt es die Infos: http://www.php.comzept.de NEU: Die Referenz PHP 4! http://www.php.comzept.de/referenz ----------------------------------------------------
php::bar PHP Wiki - Listenarchive