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

MySQL - merkwürdiges Sortierproblem

Status
Für weitere Antworten geschlossen.

thuemmy

Aktives Mitglied
Hallo Forum,

ich habe ein recht komisches Problem mit einer MySQL-Tabelle. Die Tabelle hat folgende Struktur:
Code:
id      int(11) autoincrement
artikel text
menge   float
preis   float
start   int(11) in diesem feld steht der unix-timestamp der Datenerfassung
ende    int(11)
Die Spalte start enthält folgende Werte:
Code:
1218815193
1219139962
1219158711
1219158720
Mein SQL-Statement sieht so aus:
Code:
SELECT * FROM `tabelle` ORDER BY 'start' ASC;
Allerdings bekomme ich ein falsch sortiertes Ergebniss zurück, egal ob ich das SQL-Statement innerhalb meines PHP-Skriptes oder über phpMyAdmin aufrufe. Wenn ich im phpMyAdmin die Tabelle anzeige, und dann den Spaltenkopf 'start' anklicke, dann bekomme ich die richtige Sortierreihenfolge. Ich habe die Tabelle auch schon repariert (kostet ja nichts) aber eine Lösung hat es auch nicht gebracht.

Ich hoffe, dass jemand hier im Forum eine Idee hat.

Gruß thuemmy
 
Also angezeigt werden die Daten in folgender Reihenfolge:
Code:
1219158711
1218815193
1219139962
1219158720
Im Skript natürlich mit date() formatiert.

Gruß thuemmy
 
Code:
SELECT * FROM `tabelle` ORDER BY `start` ASC;

singel quotes bei start waren nicht korrekt, lustig, das hatte ich auch noch nie .....
 
Vielen Dank für die Antwort. Das ist ja nun komisch. Ich hätte mir vorstellen können, dass da MySQL 'nen Fehler bringt, aber nicht das einfach die Sortierreihenfolge 'willkürlich' gestaltet wird. Obwohl, ganz willkürlich isses nicht, Ich habe einen Datensatz gelöscht, und dann nochmal den 'falsch einsortierten' hinzugefügt.

Gruß thuemmy
 
Es stimmt doch die SELECT_Abfrage, les doch die Zahlen mal richitg, sie sind richtig sortiert oda was meinst du direkt????


mfg ;Jump
 
Also ich weiß ja nicht, wo Du das zählen gelernt hast :-D aber die Reihenfolge ist doch total falsch. Und funktionieren tut es nun auch, nachdem ich die single-quotes ersetzt habe.

Trotzdem 'nen Gruß nach Zwigge
thuemmy

P.S. Jetzt hab ich es gesehen... Im ersten Post sind die Zahlen in der richtigen Reihenfolge. In einem späteren Post von mir, habe ich nochmal die Sortierreihenfolge angegeben.
 
ihr immer mit euren quotes..

ich schreib einfach SELECT * FROM tabellenname ...

OHNE quotes, dann kommt auch kein fehler. und JA das funktioniert^^
 
Jo das ist genau das schlimmste was du machen kannst. Schonmal was von Schlüsselwörtern gehört oder MySQL-Injection?

Was ist wenn du ein Feld hast, was den namen text hat? Tja pech gehabt, mysql error -.-

Deine Abfragenstruktur mit * ist eine gefundenes Fressen für hacker. Da lässt sich super die Struktur der Datenbank ausspinoieren, und das bleibt nicht nur bei der Struktur. Ich hoffe du hast wenigstens mysql_real_escape_string benutzt?

Naja is ja dein Ding.

Befehle (wie SELECT, DELETE, ORDER etc) sollten der übersicht halber groß geschrieben werden (naja ist geschmackssache)
Datenbanknamen, Tabellennamen, Feldnamen, Indexes etc gehören in ``-Paare, Nicht numerische Werte in ''-Paare.

Und naja, wer * benutzt, selber schuld. Nicht nur das es unsicher ist wie s.a.u, es verschlechtert auch die Performance um einiges und erschwert manchmal auch das Auslesen der Ergebnisse
 
Die Datentypen finde ich fraglich.

  • Warum ist Menge float? Gibt es halbe Brötchen zu kaufen?
  • Preise sollte besser decimal(10,2) sein
  • Start und ende sollten besser Datetime sein, damit man die MySQL-eigenen Funktionen benutzen kann (beim Abfragen einfach umwandeln)

//edit
Jetzt bin ich doch wegen diesem Bot auf diesen älteren Thread reingefallen.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben