Ich verzweifle...Systemzeit

PHPneu1

Mitglied
Hallo Forum

ich möchte ein Datum mit Uhrzeit in meine MySql Db eintragen. Das Feld ist ein DATETIME.

Folgendermassen bin ich nun vorgegeangen:

PHP:
<?php
 
$zeit = date ("H:i:s");					 // Ausgabe der Systemzeit in eine Variabel
 
//----------------------------------------
$datum	 =	 $_POST['MExpire']; // das Datum wir von einem Form übergeben (im Form lese ich das Feld der DB aus 0000-00-00 00:00:00 und überschreibe nur das Datum mit 31.12.2005)
 
list($t, $m, $j) = split("\.", $datum); // umformatierung des Datumformates
 
$datum	 =	 "$j-$m-$t";			 //einlesen des neuen Formates
 
$MExpire	=	 $datum.''.$zeit;	 // Hier möchte ich die beiden Variablen zusamenfügen und für den DB Eintrag vorbereiten. 
// Dann kommt der update
$updateSQL = "UPDATE Users SET .......
 
?>

Leider funktioniert dies nicht und ich finde den Feler nicht. Der eintrag im Feld ist unverändert: 0000-00-00 00:00:00

Anmerkung:
Wenn ich in der DB nur ein DATE Feld habe und nun wie oben ohne Zeit das Datum einfüge, funktioniert es.
Was muss ich ändern um auch die Zeit einzutragen.

Danke für den Feedback.
Gruss
 
Wenn Du es so machst
PHP:
$zeit = date ("H:i:s");
$datum = $_POST['MExpire'];
list($t, $m, $j) = split("\.", $datum);
$datum = "$j-$m-$t";
$MExpire = $datum." ".$zeit;
dann wäre das Ergebnis (wenn $_POST['MExpire'] = "31.12.2005" wäre) "2005-12-31 10:45:00". Zwischen das Datum und die Zeit muss ein Leerzeichen, damit das Format stimmt.

redlama
 
Besten Dank hat geklappt.

Anmerkung und noch ne kleine Frage:

Die Vorgabe vom DB Feld 0000-00-00 00:00:00 mus ich löschen und nur das Datum eintragen. Wenn ich 31.12.2005 00:00:00 eingebe wird nichts in die DB eingetragen.
Leider kann ich die Vorgabe im DB Feld nicht löschen.

Könnte ich dies andres umgehen?

Das Feld lese ich folgend aus:
PHP:
value="<?php echo $row_UsrE['MExpire']; ?>"
Gruss
 
Zuletzt bearbeitet:
Das habe ich jetzt nicht so ganz verstanden.
Wann musst Du die Vorgabe aus der DB löschen?
Wenn Du einen neuen Eintrag in die DB einfügst, dann wird doch nur ein Autowert gesetzt, wenn Du kein Wert für dieses Feld zum speichern übergibst.
Oder wie meintest Du das jetzt?

redlama
 
Wenn ich in der DB ein Feld vom Typ DATETIME generiere macht das MySql automatisch in der Spalte Standard den Eintrag 0000-00-00 00:00:00.

Bei einem INSERT wird im INPUT nichts angezeigt

UPDATE:
Wenn ich nun das Feld MExpire aus der DB in ein Input (type=text) auslesen lasse erscheint dort der Standardvorgabe 0000-00-00 00:00:00 .
Um das Script oben erfolgreich zu benutzen muss ich alles löschen (also auch die Zeit) und 31.12.2005 eingeben.

Wenn ich nur das Datum überschreibe 31.12.2005 00:00:00 , und die Zeit belasse schreibt das UPDATE nichts in die DB. D.h. Standard verändert sich nicht.

Wie oben erwähnt, lese ich das Feld im INPUT folgend aus

PHP:
value="<?php echo $row_UsrE['MExpire']; ?>"
Nun zu meiner Frage:

Wie kann ich den Standard der DB als Anzeig in meinem INPUT umgehen oder sogar verändern wenn ich ein UPDATE mache.

Gruss
 
Zurück