• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

LIKE Statement Problem Umlaute

Freshmojojo

Mitglied
Moin zusammen,
und zwar bin ich auf folgendes Problem gestoßen, dass das LIKE Statement in Sql leider die Umlaute ignoriert. Das sieht in der Praxis so aus, dass bei meiner Suche Leinöl und Leinol die gleichen Treffer geben und das ist in meinem Fall ziemlicher mist. Auch ß wird als s erkannt.
Wie bekomme ich es hin das bei meiner Suche einzelne Buchstaben in einem Wort gefunden werden, aber gleichzeitig Umlaute berücksichtigt werden? Vielen Dank!
Lg
Freshmojojo
 
Werbung:
Hallo,

das hat nichts mit LIKE zu tun, sondern was mit der Datenbank, las raten datenbank utf8_general_ci?

Vielleicht utf8_unicode_ci mal probieren.

Cheffchen
 
Nein, ich habe schon alles durchprobiert soweit und ich habe die DB auf utf8_unicode_ci. Oder muss ich im php Dokument selber den Begriff mit dem ich Vergleichen will umwandeln? Danke!
 
Werbung:
Probieren würde ich da nicht herum. Ich würde dir raten genau zu schauen was Du aktuell als Zeichensätze verwendest. Also:

* alle verwendeten Dateien müssen den selben Zeichensatz haben
* die Datenbankverbindung muss den selben Zeichensatz haben
* die Datenbank muss den selben Zeichensatz haben
* die Datenbanktabellen müssen den selben Zeichensatz haben
* die Datenbankspalten müssen den selben Zeichensatz haben
* der eingegebene String muss ebenfalls den gleichen Zeichensatz haben

Falls sich irgendetwas dort unterscheidet, pass es entsprechend an.
 
PHP:
$sql = "SELECT * FROM ".$tabelle." WHERE product_name LIKE ('%".$mysqli->real_escape_string($begriff)."%') LIMIT 5";
Das hier ist meine Abfrage. Wobei man sich der Begriff zB so definiert sein könnte:
PHP:
$begriff = utf8_decode($_POST["suchbegriff"]);
 
Werbung:
Ich habe alles überprüft habe beide Dokumente(sowohl die Hauptdatei als auch auch die DB Connection auf UTF-8 ohne BOM). Meine DB an sich ist in utf8_unicode_ci. Die Tabelle ist in utf8_unicode_ci. Und auch die Spalte aus der ich es auslesen möchte ist in utf8_unicode_ci. Wie genau bekomme ich nun den String auf das Format dass ich ihn vergleichen kann? Oder mach man das schon mit utf8decode?
 
Das mit dem ß und den anderen Sonderzeichen wie "§$?" bis auf "&". Funktionieren schonmal :) Ich bin aber immernoch der Meinung das Like die Umlaute verschluckt. Oder irre ich mich da?
 
Werbung:
Zurück
Oben