Aktuelle Zeit in DB schreiben

MajotPayne

Grünschnabel
Hallo Leute...ich habe einige Beiträge durchforstet, aber leider keine passende Idee für mein Anliegen gefunden...Also, ich habe ein Formular erstellt und übergebe die Formulardaten an meine DB. Das funktioniert mittlerweile so wie es soll. Jetzt würde ich gerne bei jedem Absenden des Formulars einen timestamp mit senden (bzw. in die Tabelle schreiben lassen) . Das Einfachste erschien mir, in der entsprechnden Tabelle meiner Datenbank ein dementsprechendes Feld mit der Funktion "TIMESTAMP" anzulegen. Leider bekomme ich nun eine Fehlermeldung meiner php-Datei, welche die Daten übergibt, da nach der Abfrage ja nun in der Tabelle ein Feld mehr existiert, als ich übergebe. Dadurch werden jetzt keine der Formulardaten mehr übergeben.

1. Ich weis net, ob ich mich verständlich genug ausgedrückt habe ?
2. Wäre das grundsätzlich der richtige Weg ?
3. Gibt es eine bessere, einfacherer Lösung für einen "Laien" ?

Danke schon mal für Eure Hilfe....

Andreas
 
Mein Script, bzw. die Felder die ich übergebe sehen so aus:

Code:
$dbanfrage = "INSERT into $tabelle values ('', '" . $_POST["fname"]. "', '" . $_POST["fvorname"] . "','" . $_POST["fstrasse"] . "',
'" . $_POST["fplz"] . "','" . $_POST["fwohnort"] . "','" . $_POST["fland"] . "','" . $_POST["ftelefon"] . "',
'" . $_POST["fmail"] . "','" . $_POST["flizens"] . "','" . $_POST["bname"] . "','" . $_POST["bvorname"] . "',
'" . $_POST["bstrasse"] . "','" . $_POST["bplz"] . "','" . $_POST["bwohnort"] . "','" . $_POST["bland"] . "',
'" . $_POST["btelefon"] . "','" . $_POST["bmail"] . "','" . $_POST["blizens"] . "','" . $_POST["hersteller"] . "',
'" . $_POST["modell"] . "','" . $_POST["hubraum"] . "','" . $_POST["leistung"] . "','" . $_POST["baujahr"] . "',
'" . $_POST["turbo"] . "','" . $_POST["kennzeichen"] . "','" . $_POST["fahrgestellnummer"] . "',
'" . $_POST["fiahomnummer"] . "','" . $_POST["treibstoff"] . "','" . $_POST["gruppe"] . "','" . $_POST["klasse"] . "',
'" . implode(',', $_POST['praedikate']) . "','" . $_POST["nenngeld"] . "')";

Und die Kontrolle :
Code:
if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}

Füge ich aber nun in meiner DB ein Feld Typ timestamp ein, gibt mir mein Script meine Meldung aus, welche ich unter "else" verfasst habe..... Leider habe ich keine Ahnung wieso, denn bspw. ein Id-Feld mir laufender Nummer stört ja auch net.
 
Hi,

da Du in Deiner INSERT-Abfrage nur die einzutragenden Werte listest (ohne Feldliste), musst Du natürlich auch den Wert für das zusätzliche Feld mit angeben, z.B. über die MySQL-Funktion NOW().

Und bitte poste bei fehlschlagenden Abfragen nicht den PHP-Quelltext, der sie generiert, sondern das, was dabei herauskommt (in diesem Fall z.B. den Inhalt der Variablen $dbanfrage) und formatiere das strukturiert. So ist das kaum lesbar...

LG
 
Danke für Eure Anregungen. Ich habe es nun wie folgt gelöst (falls jemand mal vor dem gleichen Problem steht) :

Ich habe mich der timestamp bedient......

Code:
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);

und dieses dann einfach in 2 Textfelder getrennt übergeben: (SO kann man sie auch ohne großes Umwandeln getrennt auslesen und weiter verarbeiten.

Code:
'" . mysql_real_escape_string($datum) . "',
'" . mysql_real_escape_string($uhrzeit) . "'

....wünsche Euch einen schönen Feiertag und einen ruhigen Sonntag.
 
Deine Lösung ist zwar möglich, aber MySQL besitzt nicht grundlos den Feldtyp timestamp. MySQL hat zum Auslesen der Daten dafür auch direkte Sprachkonstrukte wie p. e. DATE_FORMAT(date, format). Meiner Meinung nach, sollte man versuchen möglichst viel direkt in MySQL zu verarbeiten um damit PHP zu entlasten.
 
Ja, das mag stimmen, allerdings war das für mich als Laie die wirklich einfachste Lösung. (oder die erste, welche ich gesehen habe) Ich stehe ja quasi ganz am Anfang.....kommt Zeit....kommen auch andere Lösungen....ich werde lernen.....hoffentlich ;)
 
Zurück