Benjamin Marten: SQL: 30 neueste Einträge

Hallo.

Ich habe ein Problem beim auslesen der 30 neuesten Einträge.
In der Tabelle 'counter' gibt es eine Spalte 'day' die das SQL Format 'date' hat. Das auslesen der 30 neuesten Einträge funktioniert auch, bloß wird der aktuellste nicht ausgegeben.

Hier der Code:

mysql_connect ($dbhost, $dbuser, $dbpassword);
mysql_select_db ($dbdatabase);
$query = "SELECT *
          FROM counter
          ORDER BY day DESC LIMIT 30";
$result = mysql_query($query);
$data = mysql_fetch_array ($result);
while ($data = mysql_fetch_array ($result)) {
  echo '<tr>
         <td>'.$data["day"].'</td>
         <td>'.$data["count"].'</td>
       </tr>';
}

Das komische ist, der SQL Befehl scheint zu stimmen, weil wenn ich den Befehl bei phpMyAdmin ausführe liefert er mir den aktuellsten Wert auch.

Vielen Dank für eure Hilfe.
MfG Benjamin Marten

  1. Hallo Benjamin,

    Ich habe ein Problem beim auslesen der 30 neuesten Einträge.
    In der Tabelle 'counter' gibt es eine Spalte 'day' die das SQL Format 'date' hat. Das auslesen der 30 neuesten Einträge funktioniert auch, bloß wird der aktuellste nicht ausgegeben.
    $query = "SELECT *
              FROM counter
              ORDER BY day DESC LIMIT 30";
    $result = mysql_query($query);
    $data = mysql_fetch_array ($result);

    hier liest Du den neuesten Datensatz aus, den Du nie verarbeitest ...

    while ($data = mysql_fetch_array ($result)) {

    ... da Du ihn beim ersten Schleifendurchlauf gleich überschreibst.

    Lass einfach die Zeile

    data = ...

    weg.

    Freundliche Grüsse,

    Vinzenz