order by datum aber es funktioniert nicht !
Norbert
- php
0 bleicher0 Klawischnigg0 bleicher
0 Der Martin1 ChrisB
Das ist der Code !
$abfrage = "SELECT date_format(datum,'%d.%m.%Y') AS datum, headline, info, kategorie FROM news ORDER BY datum LIMIT 15";
aber bis jetzt sind 3 einträge drin in der reihen folge
04.01.2008 - SVWW - Eintracht Frankfurt
16.10.2007 - SVWW - FSV Mainz 05 ausverkauft !!
18.02.2008 - SVWW vs. Kaiserslautern ausverkauft !
aber das ist ja nicht korekt !! wieso funktoniert das nicht ?
mfg Norbi
Grüße,
$abfrage = "SELECT date_format(datum,'%d.%m.%Y') AS datum, headline, info, kategorie FROM news ORDER BY datum LIMIT 15";
ehm.. syntax ist brutel - spaltennmen gehören in
das ist schift+taste links vom backspace.
MFG
bleicher
Hi there,
ehm.. syntax ist brutel - spaltennmen gehören in
nur wenn der Spaltenname ein reserviertes Wort ist oder Sonderzeichen enthält. Im übrigen hat das mit seiner Frage (wie so oft) nichts zu tun...
Grüße,
nur wenn der Spaltenname ein reserviertes Wort ist oder Sonderzeichen enthält.
kann es variieren? xampp den ich nutze verträgt es zB scheinbar nicht ohne.
MFG
bleicher
Hallo,
$abfrage = "SELECT date_format(datum,'%d.%m.%Y') AS datum, headline, info, kategorie FROM news ORDER BY datum LIMIT 15";
04.01.2008 - SVWW - Eintracht Frankfurt
16.10.2007 - SVWW - FSV Mainz 05 ausverkauft !!
18.02.2008 - SVWW vs. Kaiserslautern ausverkauft !aber das ist ja nicht korekt !! wieso funktoniert das nicht ?
was heißt "nicht korrekt"? Wenn die Spalte "datum" ein reines Textfeld ist, ist diese Sortierung vollkommen korrekt! Wenn du nach Datum sortieren willst, benutze entweder ein Feld vom Typ Datum, oder verwende das Datumsformat nach DIN 5008 (YYYY-MM-DD), das sich auch als String sauber sortieren lässt.
Ciao,
Martin
Hi,
"SELECT date_format(datum,'%d.%m.%Y')
Du hast als eine Spalte, die auf den Bezeichner datum hoert.
AS datum,
Hier ueberschreibst du diesen Bezeichner aber - und weist ihn dem *formatierten* Datum zu, welches du gerade erzeugt hast.
headline, info, kategorie FROM news
ORDER BY datum LIMIT 15"
Und eben dieses Format wird also hier zur Sortierung herangezogen.
aber bis jetzt sind 3 einträge drin in der reihen folge
04.01.2008 - SVWW - Eintracht Frankfurt
16.10.2007 - SVWW - FSV Mainz 05 ausverkauft !!
18.02.2008 - SVWW vs. Kaiserslautern ausverkauft !
aber das ist ja nicht korekt !!
Doch, ist es - '04' ist kleiner als '16', und '16' ist kleiner als '18'.
wieso funktoniert das nicht ?
Weil Computer nicht das machen, was du dir wuenschst, sondern das, was du ihnen sagst.
Weil du nicht den Inhalt deiner datum-Spalte fuer die Sortierung benutzt hast, sondern dein formatiertes Datum.
MfG ChrisB
Moin!
"SELECT date_format(datum,'%d.%m.%Y')
Du hast als eine Spalte, die auf den Bezeichner datum hoert.
AS datum,
Hier ueberschreibst du diesen Bezeichner aber - und weist ihn dem *formatierten* Datum zu, welches du gerade erzeugt hast.
headline, info, kategorie FROM news
ORDER BY datum LIMIT 15"Und eben dieses Format wird also hier zur Sortierung herangezogen.
Oder kürzer und vielleicht verständlicher:
Du sortierst nach der Spalte "datum", das ist aber das Stringergebnis deiner Funktion date_format, nicht das Datum in deiner DB-Spalte "datum".
Abhilfen:
ORDER BY news.datum
Die Angabe der Tabelle sortiert nicht nach Ergebnis-Alias, sondern nach Tabelle.
date_format(datum,...) AS datum2 ... ORDER BY datum
Ein anderer Aliasname würde die Doppeldeutigkeit ebenfalls verhindern.
- Sven Rautenberg