Wir kennen uns mit MySQL nicht aus, aber bevor keiner antwortet...
$query = mysql_query("SELECT
uid
,firstname
,surname
FROM ".$MYSQL['table']['users']." WHERE MATCH (firstname
,surname
) AGAINST ('".$_GET['name']."' IN BOOLEAN MODE)") or die(mysql_error());
Nur mal so nebenbei, wir haben hier maximal zwei Problemlagen, die erste ist die serverseitige Logik (PHP), sollten da Probleme auftauchen, würde sich eine Diskussion derselben in einem neuen Beitragsstrang unter dem Themenbereich "PHP" anbieten, die andere Problemlage ist "DATENBANK" bzw. SQL. Da dieser Beitrag unter "DATENBANK" gelistet ist, interessiert eigentlich nur SQL-Code, der bspw. mit und
gefärbt und zudem formatiert ist, also bspw.:
SELECT
Vorname,
-- etc.
FROM
Menschen
WHERE
(Vorname = 'Eduard')
Meine erste Frage lautet, ob man diese Suche evt. auf eine Datenbank-freundlicherer Art umsetzen könnte oder ob dieser Weg "gut" ausschaut.
Ich kann mich dünn daran erinnern, dass man so abfragen kann. Wichtig ist aber, dass der Volltextindex aufgebaut wird, also schon da ist. Das ist sicherzustellen.
Zweite Frage. Ich habe einfach immer noch nicht ganz den unterschied zwischen IN BOOLEAN MODE und WITH QUERY EXPANSION verstanden, würde aber behaupten das IN BOOLEAN MODE in meinem Fall geeignet wäre.
IN BOOLEAN MODE müsste ein "Wahr" oder "Falsch" zurückgeben, WITH QUERY EXPANSION - Moment! - http://dev.mysql.com/doc/refman/5.1/de/fulltext-query-expansion.html - ach hühner doch am besten selbst in der Doku herum. ;)
Dritte Frage, wie könnte ich das Script so anpassen das es egal wäre ob man ü, ö und ä oder ue, ue oder ua angibt.
Vorsicht, Umlaute kann man zwar richtigerweise übersetzen in Kombinationen aus Vokalen, andersrum gehts aber nicht. Mal davon abgesehen kannst Du natürlich die Stringfunktionen (Gibts ein REPLACE in MySQL?) nutzen => Doku
Gross- und Kleinschreibung (also "case sensivity" ;) kann man mit dem BINARY-Schlüsselwort unterscheidbar machen (habe ich heute hier gelernt).
Ich hoffe, dass mir jemand beim tuning meines Scripts helfen kann.
Da wird es nicht viel zu tunen geben, wenn der Index steht und der SQL-Code (diesmal schön dargestellt) ebenfalls.