Suchstring für Volltextsuche zerlegen!

webpagemaster

Erfahrenes Mitglied
Hallo,

ich möchte eine Volltextsuche realisieren, die sich auf ein Feld in der Datenbank (name=volltext) bezieht.

Dazu habe ich ein gewöhnliches
Textfeld
PHP:
<input type="text" name="suche">
in welches die Suchausdtücke hineingeschrieben werden können.

z.B: wort1 wort2 wort3

Um für die Datenbankabfrage beispielsweise folgenden string zu erhalten
PHP:
sql = "SELECT * FROM `meine_tabelle` WHERE MATCH `volltext` AGAINST 
('+wort1 +wort2 +wort3' IN BOOLEAN MODE)";
muss ich die variable ($_POST['suche']), die ich aus dem Textfeld "suche" bekomme, irgendwie in die einzelnen Worte zerlegen und ein + davor schreiben....

Die Frage ist nur wie?
 
Hi!

Nur mal als Idee:
PHP:
$match = '+'.implode(' +', preg_split ("/\s+/", $_POST['suche']));
... geht aber sicher eleganter.
Sicherlich sollte man auch auf die Möglichkeit eingehen, daß die Suchwörter bereits "+" oder "-" enthalten und diese erhalten oder entfernen...?

Liebe Grüße,
Mark.
 
Danke,

habs mittlerweile so gelöst:

PHP:
if($_POST['schnellsuche']){
	$sucharray=split(' ', $_POST['schnellsuche']);
        foreach ($sucharray as $suchausdruck){
                 $suchwoerter.= "+".$suchausdruck." ";
    }
    $query_suchanfrage=mysql_query("select id from tabelle where match volltext against ('".$suchwoerter."' in boolean mode)");  
}

das funktioniert soweit.

Jetzt hätte ich allerdings noch eine weitere Frage:
mit dem oben angeführten sql-string kann ich nur nach ganzen wörtern suche...

Wenn in meinem volltextfeld beispielsweise "hallo" steht und ich nach "hal" suche, bekomme ich keinen Treffer!

Hat vielleicht jemand eine Idee, wie das funktionieren würde?
 
Zurück