Datum + tijd via formulier naar MySQL database

Pagina: 1
Acties:

  • CasterTroy
  • Registratie: September 2003
  • Laatst online: 20:54
Beste Tweakers,

Ik probeer al de hele avond het voor elkaar te krijgen om vanuit een formulier de tijd en datum mee te sturen naar mijn database.
In plaats van dat de datum en tijd wordt weergegeven, zie ik in PHPmyadmin dat de PHPcode die ik bij Value had ingevuld wordt weergegeven in mijn "datum+tijd veld"

Onderstaande regel gebruik ik in een *.tpl (template) bestand van een formulier:


Heeft iemand een idee waarom het niet werkt?
PHP:
1
<td width="48%" align="left"><input type="hidden" name="movie[time]" value="<?php print date('d-m-Y H:i:s'); ?>"></td>


Ik had al eerder overwogen om het via DATETIME of TIMESTAMP te doen met MySQL, echter is een hidden field toch mijn keuze geworden.

  • Calamor
  • Registratie: Oktober 2004
  • Laatst online: 20:41
Waarom doe je niet als er gepost is dan een tiijd moster te nemen?

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Het feit dat je database veld gewoon de phpcode weergeeft, impliceert dat de value van je hidden input gewoon letterlijk <?php ... ?> is. Met andere woorden, de code is niet geparsed. Dit kan komen omdat je .tpl bestand niet geparsed wordt als zijnde php bestand, omdat:
1. Je gebruikt maakt van een php template classe/systeem. In dat geval zul je een var moeten setten, die tijdens runtime door de classe/systeem wordt vervangen met de datum & tijd.

e.g. mbv phplib templates:
In de template file blaat.tpl:
code:
1
<td width="48%" align="left"><input type="hidden" name="movie[time]" value="{blaatVar}"></td>


In je code:
PHP:
1
2
3
4
5
6
<?php
    $tpl = new Template();
    $tpl->set_file("blaat", "blaat.tpl");
    $tpl->set_var("blaatVar", date('d-m-Y H:i:s'));
    $tpl->pparse("blaat");
?>


2. De extensie .tpl niet als php wordt geparsed. In dit geval kan je het beste gewoon de .tpl hernoemen naar .php.

Een andere oplossing is dat je gewoon idd een timestamp veld gebruikt van mysql. Je geeft met 't argument NULL aan dat je dan de huidige tijd wilt (in seconden vanaf 1 janauri 1970; deze formaat is equivalent aan het resultaat van methode time() van php, en kan met date() netjes geformateerd worden.)

[ Voor 28% gewijzigd door prototype op 17-01-2005 01:20 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Als je de huidige datum en tijd wil doorgeven aan MySQL, dan heb je helemaal geen PHP-code nodig, gebruik gewoon de functie NOW() van MySQL zelf.

Verder kun je beter geen timestamp veld pakken. Bij mijn weten wordt dat telkens automatisch aangepast naar de tijd waarop je voor het laatst het record gewijzigd hebt. Lijkt me niet wat je wil hebben. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • CasterTroy
  • Registratie: September 2003
  • Laatst online: 20:54
Bedankt Prototype .. ik denk dat ik zo wel weer een heel stuk verder ben ! :>