login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Php]mktime()

Offline finduilas - 05/07/2006 20:34 (laatste wijziging 05/07/2006 20:41)
Avatar van finduilasPHP gevorderde Hallo,

Ik ben bezig om met <select></select> de geboortedatum in de DB te proppen.
Dat is m'n select.(werkt prima)
  1. geboortedatum:
  2. <select name="dag">
  3. <?php for($i = 1; $i <= 31; $i++)
  4. {
  5. echo '<option value=\"'.$i.'\">'.$i.'</option>';
  6. } ?></select>
  7. <select name="maand">
  8. <?php for($i = 1; $i <= 12; $i++)
  9. {
  10. echo '<option value=\"'.$i.'\">'.$i.'</option>';
  11. } ?></select>
  12. <select name="jaar">
  13. <?php for($i = 1900; $i <= 2010; $i++)
  14. {
  15. echo '<option value=\"'.$i.'\">'.$i.'</option>';
  16. } ?></select>

Alleen wil ik dit nu omzetten naar een timestamp met mktime();
Dit doe ik zo:
  1. $maand = $_POST['maand'];
  2. $dag = $_POST['dag'];
  3. $jaar = $_POST['jaar'];
  4. $datum = mktime(0,0,0,$maand,$dag,$jaar);

En dit wil ik dan met dit in de DB zetten:
  1. mysql_query("UPDATE leden SET email='".htmlentities($_POST['email'],ENT_QUOTES)."',ip='".$_SERVER['REMOTE_ADDR']."',naam='".htmlentities($_POST['naam'],ENT_QUOTES)."',achternaam='".htmlentities($_POST['achternaam'],ENT_QUOTES)."',geslacht='".htmlentities($_POST['geslacht'],ENT_QUOTES)."',website='".htmlentities($_POST['website'],ENT_QUOTES)."',geboortedatum='".$datum."' WHERE username='".$username."'")

Alleen krijg ik nu een notice: Warning: mktime() expects parameter 4 to be long, string given in D:\wamp\www\finduilas\2\wijzigprofiel.php on line 22.

En er word dus ook niets in de DB gezet.Hoe kan ik dit verhelpen?

4 antwoorden

Gesponsorde links
Offline Maarten - 05/07/2006 20:35 (laatste wijziging 05/07/2006 20:36)
Avatar van Maarten Erelid $maand = intval($_POST['maand']);

Und zo weiter.
Maar waarom doe je dat eigenlijk, je kan toch gelijk $_POST['maand'] in je query gebruiken..?
Offline finduilas - 05/07/2006 21:06 (laatste wijziging 06/07/2006 07:57)
Avatar van finduilas PHP gevorderde Thanks murfy;Dat werkt.Ofja toch bijna.Alleen als ik nu bv 18 05 1990 selecteer word dit verkeerd in de DB gezet.Want als ik hem ophaal met:
  1. <?php echo date("d m Y",$obj->geboortedatum); ?>

Krijg ik een andere datum: 30 11 1999

En dat is niet de bedoeling.

Wat is er verkeerd?
Offline lasdesigner - 06/07/2006 08:24 (laatste wijziging 06/07/2006 08:24)
Avatar van lasdesigner PHP beginner Volgens mij moet jij nu doen:
  1. <?php
  2. echo Time()-$databasetijd;
  3. ?>
Offline Bart - 06/07/2006 09:01 (laatste wijziging 06/07/2006 09:01)
Avatar van Bart PHP expert Ik neem aan dat je datum er zo uit moet komen te zien:
00-00-0000?

Dan is het vrij simpel:
$_POST['dag']."-".$_POST['maand']."-".$_POST['jaar']
  1. <?php
  2. mysql_query("UPDATE leden SET email='".htmlentities($_POST['email'],ENT_QUOTES)."',ip='".$_SERVER['REMOTE_ADDR']."',naam='".htmlentities($_POST['naam'],ENT_QUOTES)."',achternaam='".htmlentities($_POST['achternaam'],ENT_QUOTES)."',geslacht='".htmlentities($_POST['geslacht'],ENT_QUOTES)."',website='".htmlentities($_POST['website'],ENT_QUOTES)."',geboortedatum='".$_POST['dag']."-".$_POST['maand']."-".$_POST['jaar']."' WHERE username='".$username."'")
  3. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s