login  Naam:   Wachtwoord: 
Registreer je!
 Forum

zelf datum ingeven

Offline Speedy - 06/10/2008 15:24 (laatste wijziging 06/10/2008 15:24)
Avatar van SpeedyPHP interesse hallo

Hoe kan je op de beste manier een datum invoeren in mysql zodat je die later nog chronologisch kunt weergeven.
Het is niet de huidige datum, maar de datum die men zelf moet selecteren. (vb. geboortedatum of datum van een evenement)
Kan je ervoor zorgen dat de jaren enkel lopen van 2005 tot heden bijvoorbeeld?

Een hele boterham, hopelijk kunnen jullie mij helpen.

MVG

3 antwoorden

Gesponsorde links
Offline Stijn - 06/10/2008 15:39
Avatar van Stijn PHP expert Gebruik het type DATE voor je kolom en lees de MySQL Datum tutorials van marten eens door.
Offline Speedy - 07/10/2008 21:28
Avatar van Speedy PHP interesse ja, maar daarin wordt niet verteld hoe je best je formulier aanmaakt zodat je die als DATE in mysql kunt invoeren. (en dan later weer kunt ordenen)

't zou iets moeten zijn in de vorm van:

[ maandag ] [ 23 ] [ oktober ] [ 1989 ]

met selectievelden...
Offline TomJansen - 08/10/2008 01:36 (laatste wijziging 08/10/2008 01:46)
Avatar van TomJansen Nieuw lid Ik zou PHP gebruiken om de ingevoerde datum te valideren en om te zetten naar iets wat MySQL begrijpt.

B.v. Dat kan als een MySQL-DATE-constant in een string.
Query SELECT CURDATE(); of SELECT NOW(); om het formaat te zien:
SELECT CURDATE() levert op:
2008-10-08

SELECT NOW() levert op:
2008-10-08 01:29:21

Dat formaat, verpakt in een string (dus tussen quotes) , kan je gebruiken in je queries, b.v. INSERT of UPDATE, of achter de WHERE-clause.

B.v.:
INSERT INTO `bef` (`datum`) VALUES('2008-10-08');
UPDATE `bef` SET `datum`='2008-10-08' WHERE `id`=999;

Wat ook kan, zijn Unix timestamps, daar houd ik zelf wel van:
UPDATE `bef` SET `datum`=FROM_UNIXTIME(1223422383) WHERE `id`=666;

Twee mogelijkheden dus: dat string formaat of de unix timestamp. (Ja in beide gevallen wordt het opgeslagen als MySQL DATE.)

Nou wil je zeker weten hoe je met PHP de ingevoerde datum in 1 van die twee formaten krijgt...

Dat ligt aan je formuliertje!
Het allermakkelijkste om te maken is natuurlijk:

  1. $vDatum = mysql_real_escape_string($_POST['datum']);
  2. "UPDATE `bef` SET `datum`='$vDatum' WHERE `id`=333;"
  3. );

En dan zeg je tegen je gebruikers:
Geef a.u.b. de datum in het formaat jjjj-mm-dd (bijvoorbeeld 2008-10-08)

Hoe gebruikersvriendelijk wil je het hebben?
Dat is slechts een kwestie van een beetje prutsen met PHP.  
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.179s