SQL Update geht nicht
Hallo, was mache ich hier falsch?
Das Feld "zeit" ist ein Timestamp und ich möchte diesen in die Unixzeit umbiegen. Wenn ich mir $zeitneu mit der date() Funktion ausgeben lassen ist das auch richtig.
Was nicht geht ist das UPDATE der Datenbank. Ist an der SQL Anweisung etwas falsch? Das feld "thetime" ist als "double" definiert.
Würde mich über Hilfe freuen.
Gruß Steve
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 |
$result = mysql_db_query($db_name,"SELECT * FROM gast ORDER BY zeit DESC;");
$menge = mysql_num_rows($result);
for($i=0;$i<$menge;$i++)
{
mysql_data_seek ($result, $i);
$row = mysql_fetch_assoc($result);
$zeitneu = mktime(substr($row['zeit'],8,2),substr($row['zeit'],10,2),0,substr($row['zeit'],4,2),substr($row['zeit'],6,2),substr($row['zeit'],0,4));
$update = mysql_db_query($db_name,"UPDATE gast SET thetime=".$zeitneu." WHERE zeit='".$row['zeit']."';");
echo $update."<br>";
|
Das Feld "zeit" ist ein Timestamp und ich möchte diesen in die Unixzeit umbiegen. Wenn ich mir $zeitneu mit der date() Funktion ausgeben lassen ist das auch richtig.
Was nicht geht ist das UPDATE der Datenbank. Ist an der SQL Anweisung etwas falsch? Das feld "thetime" ist als "double" definiert.
Würde mich über Hilfe freuen.
Gruß Steve
Hallo,
schau mal ob's vielleicht daran liegt:
"Unter PHP - Timestamp wird eine Zeitspanne verstanden, die man als UNIX-Epoche bezeichnet wird. Dies ist Zeit in Sekunden, die am 01.01.1970 begann. Den UNIX-Zeitstempel wird über die Funktion time() ermittelt. Die Ausgabe könnte dann so aussehen: 927441000.
Diese Ausgabe ist aber nicht das, was man unter einem MySQL - Zeitstempel meint.
Der MySQL - Timestamp ist eine Eigenschaft einer Spalte, in der Zeit in Form JJJJMMDDhhmmss abgespeichert wird. Dabei besitzt diese Spalte eine Sonderfunktion: Autoaktualisierung, sobald ein Datensatz geändert wurde.
Wozu das gut ist: dies ist eine Kontrolle, wann ein bestimmter Datensatz geändert wurde. Man sollte z.B. diese Spalteneigenschaft nicht als "Erstellungsdatum" verwenden, da die Gefahr bestünde, bei einer Aktualisierung (UPDATE) ein falsches "Erstellungsdatum" zu erhalten."
schau mal ob's vielleicht daran liegt:
"Unter PHP - Timestamp wird eine Zeitspanne verstanden, die man als UNIX-Epoche bezeichnet wird. Dies ist Zeit in Sekunden, die am 01.01.1970 begann. Den UNIX-Zeitstempel wird über die Funktion time() ermittelt. Die Ausgabe könnte dann so aussehen: 927441000.
Diese Ausgabe ist aber nicht das, was man unter einem MySQL - Zeitstempel meint.
Der MySQL - Timestamp ist eine Eigenschaft einer Spalte, in der Zeit in Form JJJJMMDDhhmmss abgespeichert wird. Dabei besitzt diese Spalte eine Sonderfunktion: Autoaktualisierung, sobald ein Datensatz geändert wurde.
Wozu das gut ist: dies ist eine Kontrolle, wann ein bestimmter Datensatz geändert wurde. Man sollte z.B. diese Spalteneigenschaft nicht als "Erstellungsdatum" verwenden, da die Gefahr bestünde, bei einer Aktualisierung (UPDATE) ein falsches "Erstellungsdatum" zu erhalten."
pxlcore
The Pixel Adventure Is Just Beginning
The Pixel Adventure Is Just Beginning


