MYSQL und REPLACE für Umlaute
patrick
- datenbank
0 André Laugks0 MudGuard
Hallo,
ich möchte gerne die Umlaute bei der Eingabe in die DB so ändern, dass eine spätere Sortierung korrekt angezeigt wird. Dazu habe ich in der DB zum Feld nachname ein weiteres Feld nachnamesort hinzugefügt. Beim Eintrag habe ich dann folgenden Code:
$nachnamesort="REPLACE ( REPLACE ( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE $nachname, 'Ä', 'Ae') , 'Ö', 'Oe'), 'Ü', 'Ue'), 'ä', 'ae'), 'ö', 'oe'), 'ü','ue'), 'ß', 'ss')";
$query="INSERT INTO xyz VALUES(NULL, '$nachname', '$nachnamesort')";
Das Ergebnis soll dann wie folgt aussehen:
nachname = Schäfer
nachnamesort = Schaefer
Allerdings scheint dieser Code fehlerhaft zu sein... ich blick's nett! Könnt Ihr mir helfen?
Gruss
patrick
Hallo!
Allerdings scheint dieser Code fehlerhaft zu sein... ich blick's nett! Könnt Ihr mir helfen?
Was ist den Fehlerhaft? Gibt es eine Fehlermeldung?
MfG, André Laugks
L-Andre @ gmx.de
Hi,
ich möchte gerne die Umlaute bei der Eingabe in die DB so ändern, dass eine spätere Sortierung korrekt angezeigt wird. Dazu habe ich in der DB zum Feld nachname ein weiteres Feld nachnamesort hinzugefügt. Beim Eintrag habe ich dann folgenden Code:
$nachnamesort="REPLACE ( REPLACE ( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE $nachname, 'Ä', 'Ae') , 'Ö', 'Oe'), 'Ü', 'Ue'), 'ä', 'ae'), 'ö', 'oe'), 'ü','ue'), 'ß', 'ss')";
Sicher kann man das auch von MySQL erledigen lassen.
Ich würde das aber schon vorher machen lassen - Du verwendest ja irgendeine Scriptsprache außenrum (PHP? Perl?).
Hast Du auch bedacht, daß es Namen geben könnte mit Akzenten?
Allein die 3 aus dem französischen stammenden Accent Grave, Accent d'aigu, Accent circonflex ergeben 15 weitere, nochmal 2 für die cedille.
Im spanischen gibt es dann noch die Tilde (mindestens auf dem n),
in slawischen Sprachen noch auf diversen Buchstaben den umgedrehten Circonflex, in nordischen Sprachen noch diverse Kringel und durchgestrichene Buchstaben usw.
Da kommen noch haufenweise replace-Teile dazu...
Der eigentliche Fehler in obigem Code dürfte sein, daß die '' um $nachname fehlen.
Andreas