MrSchmidtdt: SQL Ausgabe nach Datum sortieren?!

Hallo,

ich möchte die Ausgabe einer SQL Tabelle nach dem Datum sortiert ausgeben.
Derzeit werden die Einträge auf folgende Art ausgegeben:

$result = mysql_query("SELECT * FROM `vertretung`");  
while ($row = mysql_fetch_array($result)) {  
  echo $row['name'];  
  echo $row['datum_von'];  
  echo $row['datum_bis'];  
  echo $row['vertretung'];

Nun möchte ich diese Ausgabe gerne aufsteigend nach "datum_von" sortieren, sodass zeitnahe Einträge als erstes in der Liste erscheinen.
Wie mache ich das?

Vielen Dank im Voraus!

Grüße,
Mr.Schmidtdt

  1. Hi!

    Nun möchte ich diese Ausgabe gerne aufsteigend nach "datum_von" sortieren, sodass zeitnahe Einträge als erstes in der Liste erscheinen.
    Wie mache ich das?

    Die Verwendung der ORDER-BY-Klausel ist eigentlich SQL-Grundlagenwissen. Eine genaue Beschreibung ihrer Anwendung sollte in jedem SQL-Tutorial zu finden sein. Voraussetzung für den erfolgreichen und einfachen Einsatz ist, dass die Datümer in sortierbarer Form abgelegt sind, also als DATE-, DATETIME- oder TIMESTAMP-Typ oder zur Not als String in der Reihenfolge Jahr-Monat-Tag.

    Lo!

  2. Hi,

    while ($row = mysql_fetch_array($result)) {
      echo $row['name'];
      echo $row['datum_von'];

    Nun möchte ich diese Ausgabe gerne aufsteigend nach "datum_von" sortieren, sodass zeitnahe Einträge als erstes in der Liste erscheinen.
    Wie mache ich das?

    Das ist davon abhängig was im Datenfeld drinsteht.
    ein Datum in VARCHAR zB. im Format 03.12.2009 (SQL VARCHAR 11) wird ziemlich unbrauchbar sortiert.
    Ein echtes Datumsfeld (SQL Date) wird richtig sortiert (siehe den schon gebrachten Hinweis ORDER BY).
    Ich verwende aber am liebsten einfach nur time() Werte also die reine Sekundenanzahl seit 1970 (SQL INT 10) für Zeitangaben. Nach den lässt sich leicht sortieren und damit umgehen.

    Viele Grüße,
    Rob