Archiv verlassen und diese Seite im Standarddesign anzeigen : MYSQL Datenbank Einträge chronologisch sortieren
sprengstoff 04-03-2002, 21:47 Die Einträge meiner News Tabelle möchte ich gerne chronologisch sortieren. Und zwar anhand des Feldes Date mit dem Typ "DATETIME". Wenn ich es einfach mit ORDER BY DATE mach werden die Einträge nicht genau chronologisch sortiert und nach ID möchte ich auch nicht ordnen.
Wie kann ich also genau chronologisch sortieren anhand des Feldes date?
Vielen Dank im voraus!
mfG
Guido
Wenn Dir Sortierung nach Sekunden nicht genau genug ist, speichere das Ergebnis von list (http://www.php3.de/de/list) ($mu, $sec) = explode (http://www.php3.de/de/explode)(' ', microtime (http://www.php3.de/de/microtime)()); return (float)$mu; in einem eigenen VARCHAR- oder FLOAT-Feld MICROTIME und order by DATE, MICROTIME
was meinst du mit "nicht genau"??
sprengstoff 05-03-2002, 00:52 Wenn ich zum Beispiel einen Eintrag habe bei dem im Feld Date "2002-03-04 22:10:42" steht und bei einem anderen "2001-03-05 00:42:59", dann wird bei ORDER BY DATE DESC der Eintrag von "2001-03-05 00:42:59" zuerst ausgegeben obwohl er älter ist als der andere.
Oder sehe ich das falsch (kann auch sein)?
mfG
Guido
Ein Eintrag vom 5. März ist älter als einer vom 4. März des gleichen Jahres?
Dann hab ich also diese Antwort geschrieben, bevor du deine Frage gestellt hats.
Faszinierend! :D
sprengstoff 05-03-2002, 11:13 Des gleichen Jahres? Da steht doch 2001!
mfG
Guido
öhm ... übergesehen, sorry. Welche mySQL-Version?
Wenn neueste (3.23.49a bzw. 4.0.1): Bug schon an mysql.com gemeldet (http://www.mysql.com/doc/B/u/Bug_reports.html)?
... order by date desc:
2002-03-04 22:10:42
2001-03-05 00:42:59
... order by date:
2001-03-05 00:42:59
2002-03-04 22:10:42
Poste bitte Dein Select Statement. Das muß eine andere Ursache haben.
sprengstoff 06-03-2002, 18:38 ... order by date desc (leider auch):
2001-03-05 00:42:59
2002-03-04 22:10:42
1) ist das ganze auch in einem DATE-Feld?
2) wenn nicht: sind vielleicht irgendwo Leerzeichen versteckt?
Original geschrieben von hand
Poste bitte Dein Select Statement. Das muß eine andere Ursache haben.
.. oder ist es so geheim?
irgendeinen Ansatz brauchen wir ja um helfen zu können.
Kann es sein
... order by feld1, date ?
Alles Mutmaßungen, also es liegt an Dir wieviel Zeit die Klärung erfordert.
[Editiert von hand am 06-03-2002 um 21:25]
sprengstoff 06-03-2002, 23:18 $query = mysql_query ("select *, date_format(date, '%d.%m.%y %H:%i') as date FROM $table_news ORDER BY date DESC LIMIT $offseta,$newsproseite", $sqlconnect);
das feld date hat den typ DATETIME
mfG
Guido
sprengstoff 06-03-2002, 23:25 oh, ich glaub ich weiss jetzt woran es gelegen hat:
durch die datumsformatierung im mysql-query werden die
einträge nicht richtig sortiert (glaube ich)!
kann mir das jemand bestätigen?
wie kann ich das datum denn sonst noch formatieren,
ausser im mysql-query?
danke im voraus
mfG
Guido
nenn einfach dein alias anders als die Spalte, und pass die Auswertung der Query an, schon funzt das:
date_format(...) as date_out
sprengstoff 07-03-2002, 13:22 Danke, klappt super!!!
mfG
Guido
$query = mysql_query ("select *, date_format(date, '%d.%m.%y %H:%i') as datetemp FROM $table_news ORDER BY date DESC LIMIT $offseta,$newsproseite", $sqlconnect);
ups, hab die bereits gegebenen Antworten nicht gesehen, sowas gibt es auch *g*
|