Hallo Freunde der Nacht, ich versuche zur Zeit ein autocompletefeld mit Jquery zu basteln, bzw. habe es schon geschafft. Nun habe ich aber Probleme bei dem "Suchallgorhytmus".
In meiner Tabelle in der DB ist Beispielsweise so aufgebaut:
ID | Vorname | Nachname | Ort
Dort sind hinterlegt
1 | Oliver | Hermann | Hintertupfingen
2 | Olivia | Brunse | Hintertupfingen
3 | Oliver | Kerner | Dortmund
Nun "schicke" ich den Suchbegriff per Ajax an die Datei search.php. Als Beispiel Suche ich nach >> Oli Hinter <<
Meine search.php sieht folgendermaßen aus (ohne die ganzen Sicherheitschecks):
if(isset($_GET['term'])){
$term = trim($_GET['term']);
$term = ltrim($term, "\0x20");
$searchTerms = explode(" ",$term);
foreach($searchTerms as $searchTerm){
$sql[] = '\'%'.$searchTerm.'%\'';
}
$query = $mysqli->query("SELECT id, vorname, nachname, ort FROM table WHERE vorname LIKE ".implode(" OR ", $sql)." OR nachname LIKE ".implode(" OR ", $sql)." OR ort LIKE ".implode(" OR ", $sql)." ORDER BY name ASC");
Nun bekomme ich bei dieser Anfrage natürlich alle angezeigt, da ja alle im ersten Kriterium gefunden werden. Ich möchte nun aber natürlich nur Id 1 & 2 als Ergebniss bekommen. Geht dieses nur durch Verschachtelung des Where-Parts der Abfrage in mehrere AND Teile oder gibt es da einen Trick?
Hoffe mich einigermaßen vernünftig erklärt zu haben.
Mit freundlichen Grüßen Der Förster