mit mysql das erstellte Datum in die Datenbank einfügen
andynail
- php
Hallo zusammen
auf meinem Formular soll man ein Datum eingeben und dieses soll in der Datenbank in einem entsprechend formatiierten Feld eingefügt werden.
Und ich experementiere jetzt schon länger:
Ich fand die Zeilen
$timestamp = mktime(0, 0, 0, $Tag, $Monat, $Jahr);
$Datum = date($timestamp);
oder die sql Anweisung
mysql_query("INSERT INTO `Freizeit`.`kalender` set Name = '$Name', (Datum) VALUES ('$Tag-$Monat-$Jahr')");
Doch aus allem wird nix.
Wäre toll wenn ich auf meiner Seite Feiertage und die Geburtstage meiner Familie verzeichnen könnte, und dies auch komfortabel mit Formularen verwalten könnte.
Und so freue ich mich auf eure Hilfe und bedanke mich im Vorraus.
Gruß Andreas
Hi,
$timestamp = mktime(0, 0, 0, $Tag, $Monat, $Jahr);
Wo kommen diese Werte her?
Wenn es ein Dropdown für jeden Wert (Tag, Monat, Jahr) ist, dann ist die Wahrscheinlichkeit recht hoch, dass die Werte so passen. Man sollte sie vielleicht noch überprüfen, ob es Zahlen sind.
Aber wenn es z.B. aus einem Textfeld kommt und nach Tag monat Jahr aufgeteilt wurde dann sollte man auf jeden Fall so eine Überprüfung machen, weil man Daten ja in vielen Formaten eingeben kann.
$Datum = date($timestamp);
Was willst du damit erreichen? Hast du im PHP-Manual mal geschaut, wie date() funktioniert? Du musst einstellen, was es ausgeben soll. Wenn es das machen soll, was ich denke dass es soll (Tag.Monat.Jahr) dannn kannst du das auch einfacher haben, indem du gleich die Variablen von oben zusammenhängst. DA muss du nicht unnötig hin und her umformen.
oder die sql Anweisung
mysql_query("INSERT INTO Freizeit
.kalender
set Name = '$Name', (Datum) VALUES ('$Tag-$Monat-$Jahr')");
>
Das sieht sehr merkwürdig aus. Kann sein, dass es klappt - aber ich vermute eher nicht. Schau dir doch mal an, wie man ein INSERT gestaltet und dann mache es auch einheitlich für jedes Feld.
ISt das Feld Datum ein MySQL Datumsfeld? Wenn nein: Mache ein Datumsfeld draus.
Wenn ja: Dann stimmt das Format deines Datums nicht. Mysql will YYYY-MM-DD haben.
> Doch aus allem wird nix.
>
Ganz toll wäre jetzt natürlich gewesen, wenn du die PHP und MySQL Fehlermeldungen (von denen es sicherlich welche gibt) hier mit reingepostet hättest.
Gruß
Alex
Hallo
ich hatte wie oben gesagt dies auf einer Seite gelesen. Und ansonsten funktionieren ja meine sql Anweisungen. Und wenn ich Datum ='$Jahr-$Monat-$Tag' eingebe steht nachher in der Datenbank auch wieder nur Nullen.
Und ich möchte auf die vorrige Antwort hinweisen, denn ich glaube dort alles geschildert zu haben.
Danke Gruß Andreas
Hello,
ich hatte wie oben gesagt dies auf einer Seite gelesen. Und ansonsten funktionieren ja meine sql Anweisungen. Und wenn ich Datum ='$Jahr-$Monat-$Tag' eingebe steht nachher in der Datenbank auch wieder nur Nullen.
Du solltest Dir zum Testen das fertig ausgerechnete SQL-Statement anzeigen lassen. Da kommen dann manchmal die Überraschungen zutage.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello Andreas,
mysql_query("INSERT INTO Freizeit
.kalender
set Name = '$Name', (Datum) VALUES ('$Tag-$Monat-$Jahr')");
>
> Doch aus allem wird nix.
Was sagt die Datenbank selber dazu? Welcher Fehlercode und Fehlertext werden Dir zurückgeliefert, wenn Du versuchst, das obige Query ausführen zu lassen?
Welchen Typ hat die Spalte `Datum`?
Hast Du dir die Insert-Syntax schon mal im MySQL-Handbuch angesehen?
<http://dev.mysql.com/doc/refman/5.1/en/insert.html>
Könnte es sein, dass man "SET" und "VALUES" nicht mischen darf?
Könnte es sein, dass der Datumswert das falsche Format hat?
JJJJ-MM-TT
wäre ein Format, das MySQL für Spalten vom Typ Date akzeptiert...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg

--
☻\_
/▌
/ \ Nur selber lernen macht schlau
<http://bergpost.annerschbarrich.de>
Hallo
ich kann mir keine Fehlermeldung anzeigen lassen da das Formular gleich geschlossen wird. Ok in einer einfachen Datei zum testen hab ich es nicht getestet.
Die Values Variante hatte ich irgendwo gelesen. Und ich möchte ja auch den Text hinzufügen und dafür brauche ich doch die Set Anweisung?
Der Datum Wert hat das richtige Format. Ich gebe ihn selber ein und wie von dir gezeigt steht es auch in der Datenbank mit lauter Nullen.
Gruß Andreas