Falsche Sortierung bei Zahlenfeldern

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
Tobsen086
Beiträge: 56
Registriert: 4. Jan 2007, 20:37

Falsche Sortierung bei Zahlenfeldern

Beitrag von Tobsen086 »

Hallo!

Ich habe unter anderem Felder mit Zahlen angelegt. Diese sind auch als Feldtyp "Zahl" erstellt worden. Wenn ich nun eine Liste machen lasse und diese nach einer solchen Spalte sortieren lasse, werden die Zahlen falsch sortiert. (glaube so, als wenn die Spalte in der Datenbank als Textfeld gespeichert wurde?!?)

Er sortiert dann etwa so:

1
10
100
2
20
3
30
300
...

Allerdings will ich auch nicht ausschließen, dass ich einfach zu doof bin, irgendeine Einstellung zu ändern. Von daher: kann mir jemand diesen Fehler bestätigen?
Ich nutze die Version 1.4.7, glaube aber alle Zahlenfelder wurden schon vorher erstellt.
Benutzeravatar
fasse
Administrator
Beiträge: 6183
Registriert: 12. Nov 2005, 16:06

Beitrag von fasse »

Hi Tobsen,

dieser "Fehler" ist tatsächlich drin. Das liegt daran, dass bei uns alle eigenen Felder intern als Textfeld gespeichert werden, egal welchen Inhalt sie haben. Sagt man der Datenbank, sie soll danach sortieren, werden Textfelder in dieser Reihenfolge ausgegeben.

Im Moment weiß ich da auch noch nicht, wie man das lösen kann.

Gruß
Fasse
dreael
Beiträge: 45
Registriert: 13. Okt 2007, 18:45
Wohnort: Hofen SH (Schweiz)
Kontaktdaten:

Beitrag von dreael »

Als geeigneten "Temorary Workaround" für solche Fälle: Zahlen mit führende Nullen ergänzen, also 001, 002, 012, 097, 112, 123 usw. Dabei Stellenzahl entsprechend dem grössten zu erwartendem Wert inkl. Reserve für künfige Einträge anpassen.
Teste die PC-Sicherheit mit www.sec-check.net
Tobsen086
Beiträge: 56
Registriert: 4. Jan 2007, 20:37

Beitrag von Tobsen086 »

dreael hat geschrieben:Als geeigneten "Temorary Workaround" für solche Fälle: Zahlen mit führende Nullen ergänzen, also 001, 002, 012, 097, 112, 123
Hatte ich auch schon überlegt. Da ist nur das Problem, dass die führenden Nullen einfach weggekürzt werden (was ja eigentlich auch korrekt ist). Außerdem habe ich später auch vor, alle Spielernummern mit anzuzeigen und dann sieht es seltsam aus, wenn da immer noch eine 0 davor steht.

Wie an anderer Stelle schon erwähnt, ist mein Wissen in PHP/MySQL etwa genauso ausgeprägt, wie der Jagdinstinkt eines Regenwurmes. Aber, wenn man nun die "falsche Sortierung" normal ausliest, ist es dann möglich, das ganze irgendwie in ein Array zu packen und dann nochmal über PHP zu sortieren?!? Dann könnte vielleicht das hier interessant sein:
http://www.php.net/manual/de/function.natsort.php

Tobi

Ich kann es leider frühestens am WE testen. Und selbst dann würde das bei mir wahrscheinlich eh in die Hose gehen. :lol:
Antworten