Mailinglisten-Archive |
> wenn jetzt allerdings jemdand nicht nur einen Suchbegriff bei der Suche > eingibt, sondern 2 oder mehrere, dann werden diese mit einem + > zusammengepappt an das PHP3 Script uebergeben, was dann natuerlich nix in > der Datenbank finden kann... Du verwendest als Action-Methode im Formular GET. Damit werden die Parameter URL-kodiert an die URL "drangehängt": ?suchbegriff=Gebratenes+Seezungenfilet PHP ist es aber egal, welche Action-Methode Du verwendest: Ob GET oder POST, was reinkommt (suchbegriff: Gebratenes Seezungenfilet) kommt in Deinem Skript auch wieder raus (echo $suchbegriff;//output: Gebratenes Seezungenfilet, also natürlich ohne das Plus-Zeichen). Die Suche nach den zwei Wörtern funktioniert also korrekt. Was anderes ist es, wenn Du Eingaben wie "Schweineschnitzel OR Seezungenfilet", eine Boolesche Suche erlauben, möchtest. Dann könntest Du tatsächlich explode() verwenden: $suchbegriff = "Schweineschnitzel OR Seezungenfilet"; // im richtigen Skript natürlich unnötig $args = explode("OR", $suchbegriff); $sql = "feldname LIKE '%$args[0]%'"; for ($i=1; $i<count($args); $i++) $sql .= " OR feldname LIKE '%$args[$i]%"; echo $sql; Diese einfachste Variante könntest Du noch um AND und Klammern etc. erweitern. Ich glaube, in den Archiven dieser Liste findest Du auch noch was zu dem Thema (von Amalesh?). Viel Spaß. Mit freundlichen Grüßen, Tobias Ratschiller
php::bar PHP Wiki - Listenarchive