PHP Suchmaschine programmieren

Hattrix

Cadet 4th Year
Registriert
März 2007
Beiträge
111
Hallo,

und zwar möchte ich aus der Datenbank einer Spalte Werte suchen lassen. Mit LIKE ist das auch kein Problem. Soweit habe ich meine Suchmaschine erfolgreich programmieren können.

Ich möchte aber nun folgendes:
Ich suche nach "Bier Schlauch" und soll mir die Zellen ausgeben, wo nur "Bier" und wo nur "Schlauch" drin ist.
Das geht ja mit LIKE nicht, dass ich in dem SQL-Statement rein packe. Ich denke, da ist über PHP etwas programmieren angesagt? Nur wo kann ich ansetzen?
 
du kannst ja alles mal von deiner datenbank in ein Array speichern, danach einfach das Array durchsuchen. wenn du ja bei der suche "Bier Schlauf" eingibst zerlegst du diesen String zuerst. und somit hast du dann 2 Strings mit denen du in deinem Array suchen kannst. Danach die gefundenen Treffer auflisten.
 
Einfach mit OR, musst halt deinen Suchstring vorher teilen:

PHP:
$suchbegriffe = explode(" ", $_GET['suchbegriff']);

sql = "SELECT ... FROM ... WHERE x LIKE '$suchbegriffe[0]' OR x LIKE '$suchbegriffe[1]'";

Da es vermutlich auch mehr Wörter sein können, kannst du dir ja auch in einer Schleife den kompletten String nach WHERE zusammebasteln, so dass es also so aussieht

PHP:
...

$suchbegriffe = "x LIKE '$suchbegriffe[0]' OR x LIKE '$suchbegriffe[1]' OR x LIKE '$suchbegriffe[2]' ...";

sql = "SELECT ... FROM ... WHERE $suchbegriffe";
 
Du benutzt vermutlich MySQL, oder? Dann ist die Funktion FIND_IN_SET() ein Ansatz. Zumindest ist diese, zusammen mit MAKE_SET(), einfacher zu handhaben als mit PHP irgendwas hinzuwurschteln.
 
Zurück
Oben