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

Umlautsuche via PHP in SQL-Tabelle funktioniert nicht

xTOEMx

Neues Mitglied
Ich habe ein Formular (Methode GET), in das man einen Suchbegriff eingeben kann, mit welchem dann eben die Spalte einer SQL-Tabelle durchsucht werden soll. Das klappt soweit ganz gut, jedoch funktioniert das nicht, wenn man A, Ö, Ü oder ß im Suchbegriff mit drin hat.

Wie kann ich das Problem lösen?

PHP:
$select = "SELECT *";
$from     = "FROM tabelle";
$order     = "ORDER BY spalte DESC";
$limit     = "";

if (isset($_GET["term"])) {
    $where = "WHERE spalte LIKE '%$_GET[term]%'";
} else {
    $where = "";
}

$sql = "$select $from $where $order $limit"; 
$query = mysql_query($sql);  
            
while ($row = mysql_fetch_object($query)) {    
    ...
}


Durch Googlen bin ich auf alle möglichen Umlautprobleme gestoßen, konnte jedoch nichts finden was mir konkret hilft oder habe es nicht verstanden. :oops:
 
Werbung:
Hallo,

wo hast denn genau ein problem?
Wenn im formular ein ö schickst sieht das in der url so aus %F6 aber sobald die variable wieder einliest wird daraus doch wieder ein ö.

oder stimmt das ö aus dem Formular nicht mit dem in der Datenbank über ein, da deine Datenbank eine andere codierung hat, also ö nicht als ö gespeichert wird?

Cheffchen
 
Ich würde auch ganz spontan mal sagen, dass es an der Codierung der Datenbank liegt. Denn ich hatte auch manchmal Probleme mit Umlauten gehabt. Ein vom Benutzer gespeichertes "Ü" wurde im phpMyAdmin in einer krylischen Art dargestellt.


Gruß! :-)
 
Werbung:
Das Problem ist das z.B. das Wort "mäh" einfach nicht gefunden wird.
Also ich zähle auch die vorhanden Datensätze mit und bei genannten Zeichen werden eben null Einträge gefunden. (Als wären sie nicht da bzw. als würde halt wirklich irgendwo genannte Zeichen anders definiert sein oder so. :/)

Wie müsste die Datenbank denn kodiert sein?
Die Datenbank ist in utf8_bin, die Spalten waren jedoch zum Teil in latin_swedish. :/
Habe das nun geändert, funktioniert aber nicht. Muss ich evtl. noch etwas beachten wenn ich die Kodierung im Nachhinein ändere?
 
Zuletzt bearbeitet:
Hallo,

na was für eine codierung hat denn das Formular, schätze mal nicht utf8 :eek:).

versuch mal anstelle
PHP:
$_GET[term]
das
PHP:
utf8_encode($_GET[term])

wenn das nicht funktioniert schreibe doch mal "mäh" hart rein ob er dann was ausgibt.
Wenn ja wieder alles zurück und mach mal ein test ausgabe ganz am anfang
PHP:
echo $_GET[term];
um zu schauen was ankommt.

Cheffchen
 
Zurück
Oben