Julian: mysql "umdrehen"

Hallo,

ich habe folgendes Problem:

Ich schreibe mit php in eine mysql-table einige daten. Nun werden  diese von einem anderen script per schleife ausgelesen:
<?php
   mysql_connect("db.host.de", "user", "password");
   mysql_select_db("db");
   $id = mysql_query("SELECT * FROM table_main");
   while ($var = mysql_fetch_array($id)) {
      print("<p>Name: ");
      print(htmlspecialchars($var["name"]) . "<br />");
      print("Nummer: ");
      print(htmlspecialchars($var["nmb"]) . "<br />");
      print("Ort: ");
      print(htmlspecialchars($var["location"]) . "<br />");
      print("Daten: ");
      print(htmlspecialchars($var["daten"]) . "</p>");
      print("Datum: ");
      print(htmlspecialchars($var["datum"]) . "</p>");

}
   mysql_close();
?>

Wenn ich nun das script laufen lasse, werden zwar die Daten ausgegeben, aber von alt nach neu. Weiß jemand, wie ich die Ausgabe "umdrehen" kann? Dass heißt, von neu -> alt.

Danke Julian!

  1. Wenn ich nun das script laufen lasse, werden zwar die Daten ausgegeben, aber von alt nach neu. Weiß jemand, wie ich die Ausgabe "umdrehen" kann? Dass heißt, von neu -> alt.

    Nein, werden sie nicht. Sie werden ungeordnet ausgegeben, gerade so, wie die Datenbank die Daten organisiert hat. Du hast vielleicht Glück, daß die Daten geordnet erscheinen, aber sobald du viel löschst und neu einträgst, wird es ungeordnet.

    Wenn du sortieren willst, mußt du das der Datenbank sagen.

    Sortieren:
    SELECT * FROM tabelle ORDER BY einfeld
    Umgekehrt sortieren:
    SELECT * FROM tabelle ORDER BY einfeld DESC

    Wenn du nach Datum sortieren willst, sollte dein Feld "datum" vom Typ "Datum" sein, sonst sortiert mySQL nicht richtig, jedenfalls nicht nach Datum, sondern nach Strings. Eventuell nötige Datums-Konvertierungen zwischen Datenbank und Ausgabe kann ja eine kleine Funktion erledigen.

    - Sven Rautenberg

  2. hi julian

    wenn du die ausgabereihenfolge umgedreht haben willst
    braust du nur
    "order by desc"
    [ $id = mysql_query("SELECT * FROM table_main order by desc"); ]
    schreiben

    das ist alles

    gruß
    pixi

    1. Moin

      [ $id = mysql_query("SELECT * FROM table_main order by desc"); ]

      Hmm, zuvor musst du dir aber ein eigenes DBMS schreiben (oder mysql modifizieren) dass das akzeptiert.
      Meine Version von MySQL mag jedenfalls kein order by ohne Spaltenname.

      --
      Henryk Plötz
      Grüße aus Berlin