• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Timestamp / Last modified

tkoenig

Neues Mitglied
Hallo,

ich möchte bei meinen Datensätzen ein "last modified" ausgeben. Dazu habe ich der Datenbank eine Spalte "lastmod" mit der Eigenschaft "TIMESTAMP" hinzugefügt, die auch richtigerweise den Wert "2012-11-26 17:35:40" hat. Bei der Ausgabe mittels php hakt es aber und ich komm nicht dahinter, wo. Momentan sieht das Ganze wie folgt aus:
Code:
$result = mysql_query("SELECT lastmod FROM aufgaben;");
echo $result;       [I]// Ausgabe: Resource id #8[/I]
$row  = mysql_fetch_array($result);
echo $row;      [I]// [/I][I]Ausgabe:[/I][I] Array[/I]
$zeit = $row['lastmod'];
echo $zeit;      [I]// [/I][I]Ausgabe:[/I][I] 0000-00-00 00:00:00[/I]
Am Ende wird immerzu "0000-00-00 00:00:00" ausgegeben. Stimmt da etwas mit meinem fetch nicht? Das ist die einzige Erklärung, die mir sinnvoll erscheint. Nur was?

Danke und Ciao
Thomas
 
In der DB ist lastmod kein Timestamp, sondern vom Typ Date_Time. Und wenn du beim Insert einen Timestamp reinschreibst, geht der kaputt und das Ergebnis ist das, was du bei deinem Script siehst: 0000-00-00 00:00:00
Wenn man einfach mal nachgesehen hätte, was in der DB steht, hätte man auch alleine drauf kommen können.
 
Herrje, ich HAB nachgesehen und bin NICHT selbst drauf gekommen. Hätte ich sonst gefragt? Hat ein Forum nicht genau diesen Sinn? Keiner zwingt Dich, zu helfen. Jedenfalls werde ich aus Deiner Antwort auch nicht viel schlauer. Sorry, dass ich nicht so 'ne Leuchte bin...
 
Jedenfalls werde ich aus Deiner Antwort auch nicht viel schlauer.
Wieso nicht? Ist 0000-00-00 00:00:00 ein Timestamp? Nein, definitiv nicht. Entweder änderst die den Type auf Timestamp oder du musst beim Insert das Format ändern und dann bei Auslesen des Datums mit date_format (siehe MySQL-Doku) arbeiten.
 
Aber der Typ der Spalte lastmod IST doch Timestamp. Und ich schrieb ja, in der Datenbank ist der Wert auch korrekt "2012-11-26 17:35:40", nur ausgegeben wird eben "0000-00-00 00:00:00".
 
Was kommt hierbei raus:
PHP:
$result = mysql_query("SELECT `lastmod` FROM `aufgaben`")
   or die ("MySQL-Error: " . mysql_error());

echo "Anzahl: " . mysql_num_rows($result) . "<br />\n";

while ($row  = mysql_fetch_assoc($result))
    echo $row['lastmod'] . "<br />\n";
 
Ähm, folgendes:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/webb/e2/68/5238468/htdocs/seiten...tmp.php on line 127
Anzahl: 10
0000-00-00 00:00:00
0000-00-00 00:00:00
0000-00-00 00:00:00
0000-00-00 00:00:00
2012-11-27 09:40:47
0000-00-00 00:00:00
0000-00-00 00:00:00
0000-00-00 00:00:00
0000-00-00 00:00:00
2012-11-27 09:41:22

Sieht mal besser aus. Wobei mich wundert, dass er 10 Datensätze findet... sind nur neun. Aber zwei davon haben das korrekte Datum, was auch den Tatsachen in der DB entspricht.
 
Da sind 10 Datensätze drin und einige haben kein Datum gesetzt, dann kommt dann halt 0000-00-00 00:00:00 raus. Und da du keine Schleife hattest, wurde nur der erste Datensatz angezeigt und da war nix.
 
Zurück
Oben