PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Formular und Datumsübertragung



concholio
28-07-2006, 15:34
Hi,

hab mir ne PHP/MYSQL Knowledgebase (http://aphpkb.sourceforge.net/) aus m Netzt gesaugt und bin dabei diese anzupassen.
Bei dieser Knowledgebase kann man Artikel einsenden die dann nach Prüfung freigeschaltet worden.

Bisher war es so das das Datumsfeld(SubmitDate) in der MYSQL Tabelle als timestamp deklariert wurde und immer das letzte Update des Artikels angezeigt wurde.

Jedoch soll nun das Erstellungsdatum angezigt werden und nich das letzte Update. Daher habe ich das bisherige Feld (SubmitDate) auf date umdeklariert.
(Tabelle is noch leer)

In der entsprechenden PHP Date habe ich folgenden Part hinzugefügt:

<?php
$submitdate= date();
?>

und beim schreiben in die Tabelle hab ich die Variable ebenfalls hinzugefügt:

$query = "INSERT into MYSQLTabelle (..., Submitdate) VALUES (...,'$submitdate')";

Allerdings wenn ich einen neuen Eintrag mache bzw das Formular abschicke wird alles normal gespeichert außer das Datum, dem wird der Standartwert 0000-00-00 zugewiesen.

Hoffe ihr könnt mir helfen, irgendwas mach ich da ja noch falsch.

mfg concholio

undefined
28-07-2006, 16:59
Falsche Ausführungs Zeichen wenn du ' verwendest wird der String als Konstante behandelt

(..., FROM_UNIXTIME('" . $submitdate . "'))
bzw. Das Brauchst du auch nicht machen ein NOW() ist besser!

(...,NOW())

Gaert
29-07-2006, 11:57
Hallo,

hier war undefined etwas vorschnell...

Die Art wie du deinen Insert machst ist korrekt - die einfachen Anführungszeichen gehen OK, da du aussenrum doppelte verwendest.

Dein Problem ist folgendes: du verwendest in der MySQL Datenbank den Datentyp "DATE" (Format: YYYY-MM-DD) und willst diesem Feld einen Unix Timestamp (Format: Anzahl Sekunden seit 01.01.1970 00:00) übergeben. Diese beiden Datumswerte sind natürlich nicht kompatibel!

Entweder du verwendest als MySQL Datentyp ein Integer Feld (INT) und übergibst ihm den Unix Timestamp, oder du wandelst den Unix Timestamp in das Format YYYY-MM-DD um. Das geht so:


$datum = date('Y-m-d')

Siehe auch: http://de3.php.net/date

Gruß,

Gaert

concholio
03-08-2006, 17:31
Sorry das ich erst jetzt antworte, bin ein paar Tage nicht ins internet gekommen.

Es funktioniert jetzt, hab den Datentyp in der MYSQL Tabelle immernoch auf "date", jedoch habe ich die $submitdate ganz weg gelassen und wie undefined geschrieben hat ein NOW(), bei den VALUES benutzt anstatt der Variable.
So funktioniert es jetzt.

mfg concholio