Niels: Letzter Eintrag nicht ausgelesen

Hallo,
ich habe da mal eine Frage zu einem Problem, an welchem ich nun schon eine Weile rätsle.

Ich habe mir ein Redaktionssystem gebastelt, wo die Nachrichten mit Hilfe von 'id' (auto_increment) hinzugefügt werden. Auslesen lasse ich die Datenbank ganz normal über ORDER BY und DESC nach 'id'. Das funktioniert soweit auch.

Allerdings ist jetzt das Problem, dass er mir nicht den letzten, sondern immer nur den vorletzten als neuste Nachricht anzeigt.

Beispiel:

| id | Kathegorie | Überschrift | 2.Überschrift | Inhalt |

|  1 | Mond       | Leuchtet    | Heute         | hell   |
----------------------------------------------------------
|  2 | Sonne      | Strahlt     | Gestern       | hell   |
----------------------------------------------------------
|  3 | Sterne     | Sichtbar    | Vorgestern    | klar   |
----------------------------------------------------------

Wenn ich die Tabelle jetzt so auslese:

$query ="SELECT * FROM tmpinhalt WHERE ORDER BY 'id' DESC";

$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

$Spaltennamen = array_keys(mysql_fetch_array($result, MYSQL_ASSOC));

...

dann ist das Problem, dass er mit die neuste Nachricht unterschlägt.

Die Ausgabe in HTML erfolgt dann folgendermaßen:

1. Sonne, Strahlt, Gestern, hell
2. Mond, Leuchtet, Heute, hell

Mache ich da etwas falsch, oder warum gibt er mir die neuste Nachricht nicht wieder?

Wer kann mir da helfen?
Besten Dank und viele Grüße

  1. Hi,

    $query ="SELECT * FROM tmpinhalt WHERE ORDER BY 'id' DESC";

    steht das da wirklich so, mit einem ' um die id? Ich bin kein MySQL-Experte, aber für mich sieht das so aus, als würdest du die DB auffordern nach dem String 'id' zu sortieren, anstatt nach der ID. Kann das sein? Lass die Quotes mal weg, vielleicht gehts dann besser...

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  2. Hi Niels,

    Allerdings ist jetzt das Problem, dass er mir nicht den letzten, sondern immer nur den vorletzten als neuste Nachricht anzeigt.

    SELECT * FROM tmpinhalt WHERE ORDER BY 'id' DESC;

    ^^^^^

    dann ist das Problem, dass er mit die neuste Nachricht unterschlägt.

    warum schreibst du da WHERE hin? vielleicht gibt das order by beim ersten false zurück -> der datensatz wird nicht ausgegeben; und bei den anderen datensätzen gibt es true zurück?

    lass mal das WHERE weg. Und die 'anführungszeichen' um id.

    Gruß, Marian