Daten für mySQL dantebank umformen
niCo
- php
Hi,
ich habe einen Dienstplan für meine Feuerwehr erstellt, unteranderem mit dem Datum des Dienstes im Format "DD.MM.YYYY".
Die benötigten Daten werden alle auf einer mySQL datenbank gespeichert, soweit so gut!
Ich habe jetzt eine Editfunktion eingebaut, damit man z.B. Thema oder Datum editieren kann.
Dies mache ich über eine die UPDATE funktion, doch wenn ich im "Editfeld" vom Datum jetzt natürlich mein datum im "DD.MM.YYYY" Format eingebe, erkennt das die mySQL Datenbank nicht...
wie kann ich machen, dass das Datum von alleine umgeformt wird, sodas ich wenn ich auf den "Edit"-Button klicke, eine YYYY-MM-DD Format an die Datenbank gesendet wird?
mFg niCo
Dies mache ich über eine die UPDATE-Funktion, doch wenn ich im "Editfeld" vom Datum jetzt natürlich mein datum im "DD.MM.YYYY" Format eingebe, erkennt das die mySQL-Datenbank nicht...
wie kann ich machen, dass das Datum von alleine umgeformt wird, sodas ich wenn ich auf den "Edit"-Button klicke, eine YYYY-MM-DD Format an die Datenbank gesendet wird?
PHP bietet eine mannigfaltige Auswahl an Zeichenkettenfunktionen wie auch an Datums- und Zeitfunktionen, mit denen Du diese Grundübung in Programmiertechnik bewältigen können solltest.
wie kann ich machen, dass das Datum von alleine umgeformt wird, sodas ich wenn ich auf den "Edit"-Button klicke, eine YYYY-MM-DD Format an die Datenbank gesendet wird?
Schau dir mal die beiden funktionen hier an:
http://de.php.net/manual/de/function.date.php
http://de.php.net/manual/de/function.mktime.php
die sollten dein problem lösen. als anregung:
$date_array = explode(".", $DEIN_DATUMSFELD);
$datum = date("Y-m-d", mktime(0,0,0,$date_array[0],$date_array[1],$date_array[2]));
§datum sieht dann bei eingabe von 15.3.2007 so aus: 2007-03-15
ich hoffe es hilft dir.
gruß andreas
Moin!
Dies mache ich über eine die UPDATE funktion, doch wenn ich im "Editfeld" vom Datum jetzt natürlich mein datum im "DD.MM.YYYY" Format eingebe, erkennt das die mySQL Datenbank nicht...
wie kann ich machen, dass das Datum von alleine umgeformt wird, sodas ich wenn ich auf den "Edit"-Button klicke, eine YYYY-MM-DD Format an die Datenbank gesendet wird?
Ich würde, im Gegensatz zu den beiden anderen Antworten, die Formatierung und Formaterkennung komplett der Datenbank überlassen.
Das bedeutet für das SELECT die Anwendung der DATE_FORMAT-Funktion:
SELECT DATE_FORMAT(datumspalte, "%d.%m.%Y") as datumspalte, ...
Und für das UPDATE oder INSERT bedeutet das die Anwendung der STR_TO_DATE-Funktion:
UPDATE tabelle SET datumspalte = STR_TO_DATE("01.01.1900","%d.%m.%Y"), ...
Auf diese Weise könntest du beispielsweise den Datumsformatstring einheitlich gestalten und als Stringkonstante in PHP mitführen und jeweils ins SQL mit einbauen. Wäre flexibler, falls das Datumsformat sich doch mal ändern soll.
Doku-Seite zum nachlesen.
- Sven Rautenberg