phpbar.de logo

Mailinglisten-Archive

[php] mehrere Suchbegriffe uebergeben?

[php] mehrere Suchbegriffe uebergeben?

Tobias Ratschiller tobias_(at)_dnet.it
Thu, 3 Jun 1999 09:57:47 +0200


> 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