dedlfix: Order by Date funktioniert nicht ganz

Beitrag lesen

Tach!

Der Feldtyp von Date ist Timestamp. Oder meinst du etwas anderes. Sorry hab wenig Ahnung davon.

Wenig Ahnung ist mir egal. Programmieren ist die Kunst, das was man erreichen will, genau so zu formulieren, dass es die Maschine versteht. Dabei muss man sehr präzise formulieren, wenn man nicht gerade fette Systeme mit "Tu was ich meine"-Fehlerkorrekturen vor sich hat, beispielsweise Browser im Umgang mit HTML.

Gut, TIMESTAMP ist zwar nicht der richtige Typ für das Vorhaben, aber er ist erstmal grundsätzlich sortierbar. TIMESTAMP-Felder in MySQL haben eine eingebaute Magie und sollten nur dazu verwendet werden, wenn man diese Magie des austomatischen Ausfüllens und/oder Anpassens bei Änderungen haben möchte. Für alle anderen Anwendungen sind DATE, DATETIME oder TIME die richtigen Feldtypen.

Bitte unterscheide den Feldtyp TIMESTAMP in MySQL mit dem Unix-Timestamp, mit dem PHP seine Datums- und Zeitangaben auszudrücken pflegt. Um einen übergebenen Unix-Timestamp in ein DATETIME-Feld zu konviertieren kann man die MySQL-Funktion FROM_UNIXTIME() nehmen und UNIX_TIMESTAMP() für den Rückweg.

Es kann natürlich auch sein, dass du nicht den MySQL-Feldtyp TIMESTAMP meinst, sondern dass du einen Unix-Timestamp übergibst, das Feld aber tatsächlich ein anderer Typ ist.

Jedenfalls würde ich nun als nächstes das PHP zur Seite legen und erstmal mit dem phpMyAdmin oder ähnlichen Tools untersuchen, wie die Daten dort aussehen und ob da das Sortieren klappt. Und nicht zuletzt auch, ob die Where-Bedingung die gewünschten Datensätze liefern.

dedlfix.