PHP-Suchfunktion

uafsc

Erfahrenes Mitglied
Ich habe viel gesucht, aber nix passendes gefunden. Ich möchte, dass man in meinem Textfeld für die Suche Wörter eingeben kann (egal wie viele), nach denen dann in der Datenbank gesucht wird. Also in etwa so:

PHP:
$sql="SELECT * FROM items WHERE ItemTitle LIKE '%".$search_string."%'"

Nur ist da ein kleines Problem dabei. Ich möchte nämlich, dass die Wörter, nach denen gesucht wird, in ein Array gespeichert werden (mit explode) und die Reihenfolge dieser Wörter völlig egal ist. Also wer nach "Englisch spreche ich" sucht soll auch einen Eintrag mit dem ItemTitle "Ich spreche Englisch" angezeigt bekommen.

Wenn ich das Array nur ausgeben müsse mit allen Werten wäre das ja nicht so kompliziert, aber diese ins Query einzubinden schaff ich nicht...also kann ich bis jetzt nur suchen, wenn ich weiss, wie viele Wörter dass eingegeben werden und ich diese alle mit dem Array-Key ins Query einbaue. Und das ist ja nicht so toll.. ;)
 
Ich empfehle dir,
das mit dem umstellen zu lassen,
denn wenn da einer 10 Wörter eingibt,
sind das 10! möglichkeiten,
also
1*2*3*4*5*6*7*8*9*10 = 3.628.800 Mögliochkeiten,
und bei sovielen Query ist das Script unendlich lang (die Dauer)
bzw fällt sogar aus
 
Ich empfehle dir,
das mit dem umstellen zu lassen,
denn wenn da einer 10 Wörter eingibt,
sind das 10! möglichkeiten,
also
1*2*3*4*5*6*7*8*9*10 = 3.628.800 Mögliochkeiten,
und bei sovielen Query ist das Script unendlich lang (die Dauer)
bzw fällt sogar aus

Ich könnte es ja auch auf 4 Wörter o.ä. beschränken. Das wären 24 Möglichkeiten. Wer viel sucht, kann auch lange warten ;)
 
... 3.628.800 Mögliochkeiten,
und bei sovielen Query ist das Script unendlich lang (die Dauer)
bzw fällt sogar aus
Öhm, das Script macht in jeden Fall nicht besonders viel, es baut ja nur die Abfrage und schickt sie an den SQL Server. Außerdem müssen bei der Abfrage ja ALLE Worte im Suchtext enthalten sein, ich denke nicht das MySQL da große Problem mit haben wird, auch nicht bei vielen Wörtern.
 
Zurück