Simple "Datum in MySQL über PHP" Frage

kjh

Erfahrenes Mitglied
Hi,

ich muss euch mal wieder um eure Hilfe bitten!

Ich will aus einem Eingabe Feld aus einem HTML Formular ein Datum in meine MySQL Datenbank eintragen lassen. Das ganze PHP und Eintragen und so funktioniert. NUR... Das mit dem Datumsformat funktioniert leider noch nicht ganz so wie ich will: Der MySQL-Server speichert das Datum in "yyyy-mm-dd", ich will jetzt, dass der user über das Formular im Format "dd.mm.yy" eingeben kann. Wie lautet mein SQL Befehl dafür?

Meine nichtfunktionierende Idee:

PHP:
$sql  = "INSERT INTO releases (artist,release,art,date,komm,user) VALUES ('$artist','$release','$art',DATE_FORMAT(`date`, '%d.%m.%Y') as date,'$komm','$user')";

Vielen Dank für Eure Hilfe im Vorraus!

kjh
 
Hi,

Code:
DATE_FORMAT(`date`, '%d.%m.%Y') as date,

das macht keinen Sinn, du gibst als ersten Parameter eine Spalte an, Mysql weiss aber nicht was es mit der Spalte anfangen soll, da es als ersten Parameter ein formatiertes Datum erwartet.

Weiterhin macht es keinen Sinn bei einem Insert ein Alias zu verwenden, da du die Spalte ja nicht auslesen willst/kannst.

Ich würde dir empfehlen, dass Datum mit PHP richtig zu formatieren.

z.b. so:

PHP:
$datum      = explode('.', $_POST['datum']);
$timestamp  = mktime(0, 0, 0, $datum[1], $datum[0], $datum[2]);
$datum      = date('Y-m-d', $timestamp);
(Dies kann man aber auch bestimmt noch anders lösen)
Ich hoffe, ich konnte dir damit weiterhelfen.

mfg
Devil
 
Hi Devil!

Danke für deine Antwort, die is auch nachvollziehbar! Nur funktioniert die leider nicht bei mir... Es wird jetzt 1970-01-01, deutet ja darauf hin, dass etwas mit der übertragung nicht stimmt.

kjh
 
Wenn Du das Datum im Format "dd.mm.yy" eingeben und im Format "yyyy-mm-dd" speichern willst, dann könntest du das z.b. so lösen:

list ($tag, $monat, $jahr) = split (".", $Variable mit Datum);
$datum = $jahr."-".$monat."-".$tag;

Und dann wird einfach $datum in die Datenbank gespeichert.

Oder habe ich die Frage falsch verstanden?

redlama
 
Wenn du jetzt noch auf Nummer sicher gehen willst, solltest du eine Überprüfung auf korrektes Datum einbauen. Das ganze würde jetzt auch durchlaufen wenn ich "45.07.2035" eingebe. Nur die Datenbank wird nichts speichern.
 
Zurück