phpbar.de logo

Mailinglisten-Archive

Re: [php] mehrere Suchbegriffe uebergeben?
Archiv Mailingliste php_(at)_infosoc.uni-koeln.de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [php] mehrere Suchbegriffe uebergeben?



> 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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive