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