Sortierung mit Umlauten völlig chaotisch.

toboli

Erfahrenes Mitglied
Hallo,

ich habe eine Branchenliste in der verschieden Einträge vorhanden sind. Auch welche mit
Umlauten. Allerdings werden diese völlig unlogisch, zumindest für mich, ausgegeben.

Meine Code zum Auslesen lautet so:
PHP:
$result= @mysql_query("Select * FROM $tab ORDER BY branche ASC") or die(mysql_error());

Die Liste wird Auszugsweise so ausgegeben:

- Ärzte
- Übersetzungen
- Abbrucharbeiten
- Abdichtung
- Abdichtungstechnik
...
...
Zuführtechnik
Zutrittskontrolle
Zweiwegetechnik
Ärzteversicherung
Ätztechnik
Ölproduktion

Kann mir das nicht wirklich erklären. Weiß hier jemand Rat?
 
Du verwendest anscheinend eine Kollation, die mit deutschen Umlauten nichts anzufangen weiß. Du könntest es mal mit folgendem versuchen:
Code:
SELECT * FROM `$tab` ORDER BY `branche` COLLATE latin1_german2_ci ASC
 
mein vorschlag ist so ähnlich

Code:
SELECT * FROM `$tab` ORDER BY `branche` COLLATE latin1_german1_cs ASC

Der Unterschied

german1 sortiert nach Wörterbuchregel (Besser bei Sortierung nach DIN 5007 = Wörtern)
ä = a
ß =s

german2 sortiert nach Telefonbuchregel (Besser bei Sortierung nach Namen)
ä = ae
ß = ss

cs unterscheidet zwischen groß & klein ---- ci nicht

Eventuell hilf aber auch latin1_general_cs
ä zwischen a & b
ß zwischen s & t

Sind aber nur Vorschläge entnommen aus derr iX 2/2004

MfG

PS: MySQL sortiert standartmäßig nach schwedischer Reihenfolge.

ü = y --> ä und ö kommen nach z
 
Zuletzt bearbeitet:
Danke mal für alle Antworten und Hinweise, aber der Fehler lag an der Brachenliste selbst.

Diese war Teilweise z.B. mit "Ü" und ein anderes mal mit "Ü" hinterlegt. Kann ja dann nicht klappen. Nun funktioniert es ohne Probleme....

@Jörg Rißmann:

Bist Du wirklich Arbeitslos ? Wenn ja schreib mir mal bitte ne PN
 
Zurück