dobra: verschiedene suchbegriffe in einem input-Feld

Beitrag lesen

Hallo,

Ich habe eine Artikelsuche für meinen Shop gebaut, die auch soweit funktioniert :D

Aber ich schaffe es nicht, daß bei Eingabe von mehr als einem Suchwort jedes Wort einzeln gesucht wird.

Also wenn jemand nach "Baumwolle Viscose" sucht, sollen alle Artikel in den "baumwolle" und "viscose" vorkommt gefunden werden.

So wie ich es jetzt habe, wird nur "baumwolle viscose" in genau dieser Schreibweise gefunden.

(Groß/Kleinschreibung ignorieren habe ich drin)

Mein Eingabefeld schaut so aus:
<input type="text"  style="width:100px;" size="10" name="suchbegriff" value="Suchbegriff" onFocus="this.value=''" class="textfeld">

Suche/Ausgabe:

my $suchbegriff = ssp::get_var_form('suchbegriff');  #ließt Suchbegriffeingabe aus >> hier finde ich keine Möglichkeit, mehrere Wörter aufzuschlüsseln <<
....
....
 $suchbegriff=~ tr/[A-Z]/[a-z]/;
        .. Umlaute usw ..
        .. div andere Abfragen nach Preis, Suchkategorie ...

if(!length($suchbegriff)) {$suchbegriff = " "}

my $count = ssp::readSQLData("SELECT DISTINCT ITEMID, PRICE, WISUCHEN,  ARTIKEL, BTEXT, KATEG, DESCR FROM PY2_ITEM WHERE $printkategorie $printmarke (PRICE >= '$preisx' && PRICE <= $preisy) && (BTEXT  LIKE'%$suchbegriff%' || WISUCHEN LIKE'%$suchbegriff%' || ARTIKEL LIKE'%$suchbegriff%'  || DESCR LIKE'%$suchbegriff%')","ITEMID","PRICE","WISUCHEN","ARTIKEL","BTEXT","KATEG","DESCR");
...
...

mit (WISUCHEN LIKE'%$suchbegriff1%' || WISUCHEN LIKE'%$suchbegriff2%' || WISUCHEN LIKE'%$suchbegriff3%' usw) würde das funktionieren.

Die entsprechenden if-Anweisungen - wenn ein zweiters Wort usw. kann ich, aber ich finde einfach keine Lösung, Suchbegriffe die durch Leerzeichen getrennt eingegeben werden, als $suchbegriff1, $suchbegriff2, usw zu definieren.
Vermutlich gibt es eine ganz einfache Lösung, aber ich komme einfach nicht dahinter, wie ich es machen kann.

  • ich nicht mal die richtigen Suchbegriffe für MEINE Lösungssuche gefunden ;) )

Kann mir da bitte jemand helfen oder einen Tipp geben?

Vielen Dank in Voraus
dobra