Hallo,
ich möchte eine einfache Suche:
ich habe ein Table mit 3 Spalten: id, vorname, nachname
Nun möchte ich, dass die Leute auf meiner Seite diesen Table (mss_user( durchsuchen können.
Da ich nicht weiß, wie viele Namensteil und in welcher Reihenfolge sie die Daten eingeben (Vorname Nachname oder andersrum), weiß ich nicht genau, wie ich die Suche machen soll...
ich habe es versucht, mit der MySQL Fulltext Suche:
http://dev.mysql.com/doc/refman/5.0/...xt-search.html
Leider steht am Ende:
Das habe ich auch bei folgendem Code gemerkt:
wenn ich nun noch dazufüge " IN BOOLEAN MODE", wie auf der ächsten Seite des Manuals beschrieben, dann findet er bei oberem Code nurnoch jeweils eine Spalte.
Also angenommen mehrere Spalten wären betroffen mit je einem Treffer in Vorname oder Nachname, dann wird nurnoch einer dieser Name ausgegeben!
Wie könnte ich eine Suche meiner Art am besten realisieren?
Danke!
Edit: hat sich erledigt!
ich möchte eine einfache Suche:
ich habe ein Table mit 3 Spalten: id, vorname, nachname
Nun möchte ich, dass die Leute auf meiner Seite diesen Table (mss_user( durchsuchen können.
Da ich nicht weiß, wie viele Namensteil und in welcher Reihenfolge sie die Daten eingeben (Vorname Nachname oder andersrum), weiß ich nicht genau, wie ich die Suche machen soll...
ich habe es versucht, mit der MySQL Fulltext Suche:
http://dev.mysql.com/doc/refman/5.0/...xt-search.html
Leider steht am Ende:
Such a technique works best with large collections (in fact, it was carefully tuned this way). For very small tables, word distribution does not adequately reflect their semantic value, and this model may sometimes produce bizarre results. For example, although the word MySQL is present in every row of the articles table, a search for the word produces no results:
PHP-Code:
function search_person($name) {
$sql = "SELECT
id, nachname, vorname,
MATCH (vorname, nachname) AGAINST ('".$name."') AS score
FROM mss_user
WHERE MATCH (vorname, nachname) AGAINST ('".$name."')";
$res = mysql_query($sql) or die(mysql_error());
$array = array();
while($row = mysql_fetch_assoc($res)) {
$array[] = $row;
}
return $array;
}
Also angenommen mehrere Spalten wären betroffen mit je einem Treffer in Vorname oder Nachname, dann wird nurnoch einer dieser Name ausgegeben!
Wie könnte ich eine Suche meiner Art am besten realisieren?
Danke!
Edit: hat sich erledigt!