login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Hoe voer je een datum in een MySQL-DB, (date-time) via een FORM. (Opgelost)

Offline Kosmoseistis - 27/12/2010 11:16
Avatar van KosmoseistisLid Hello You,

Ik heb een vraagje in verband met het invoeren van een datum via een formulier met de methode POST.

Eigenlijk zou ik via een administratie-pagina de mogelijkheid willen geven om nieuwe gegevens in te voeren en deze via PHP op te slaan in een MySQL-database.

Momenteel werkt bijna alles goed:

de html-form-code:

<form action="adminoptredens.php?action=voegtoe" method="post">
Datum: <input type="text" name="datum" /><br />
<br />
Stad: <input type="text" name="stad" /><br />
<br />
Zaal: <input type="text" name="zaal" /><br />
<br />
Uur: <input type="text" name="uur" /><br />
<br />
Show: <input type="text" name="show" /><br />
<br />
Website: <input type="text" name="website" /><br />
<br />
Telefoon: <input type="text" name="telefoon" /><br />
<br />
Tickets: <input type="text" name="tickets" /><br />
<br />
<input type="submit" name="toevoegen" value="Voeg nieuw Optreden toe" />
<br />
</form>

Bovenaan de pagina staat de PHP-code die ervoor zorgt dat wanneer de nieuwe gegevens zijn ingevoerd en via 'POST' zijn verstuurd naar de nieuwe(zelfde) pagina, deze via een andere PHP-code zal worden toegevoegd aan de bestaande database.

Welnu, het invoeren en opslaan lukt zolang ik niets invul in het 'tekstvak' datum.
De datum kreeg het datatype: DATE-TIME wanneer aangemaakt in My-SQL.
Veronderstel dus dat ik extra code zal moeten invoeren om de inhoud van het tekstvak om te zetten naar echte DATE-TIME invoer, zodat hij kan worden ingeven in de DATABASE.

Maar vind de juiste oplossing/code niet. Nieuw in PHP en was al een hele opdracht om de rest correct te laten werken.

Wie kan me een goede link, zoekrichting of OPLOSSING aanduiden?
Kan ik via het formulier niet gewoon een datum-picker kiezen adhv HTML alleen, of is er dan reeds javascript nodig?
Momenteel zie ik de bomen door het PHP-bos niet meer staan 

Een tip is dus meer dan welkom,
alvast bedankt voor het lezen van mijn bericht,

Kosmoseistis 

2 antwoorden

Gesponsorde links
Offline Sam - 27/12/2010 15:29
Avatar van Sam PHP expert Het probleem is dat je de datum opvraagt in een tekstveld. De gebruiker kan dus in principe alles invullen wat hij wil en dit maakt het heel moeilijk om de datum om te zetten naar een datetime (je weet toch dat een datetime ook de tijd bevat?). Je kan de gebruiker wel vertellen in welk patroon (bv. YYYY-MM-DD) hij de datum moet invullen. Als je er echt op staat om datetime te gebruiken, moet de string in de vorm "YYYY-MM-DD HH:MM:SS" zijn, dus kan je de opgegeven datum gewoon aanvullen. Als je de tijd niet wilt gebruiken, verander je de datetime best naar een gewone date.  
Bedankt door: Kosmoseistis
Offline Kosmoseistis - 27/12/2010 15:39 (laatste wijziging 27/12/2010 17:23)
Avatar van Kosmoseistis Lid Bedankt voor je reactie Sam!!

Want ik zit hier echt wel blok.

"Date/time" gebruik ik omdat ik een paar keer heb gelezen (en gezien in tuts) dat het beter is om dit te gebruiken ipv enkel "Date". Waarom precies beter, weet ik niet, maar ik dacht dus hier de standaard te volgen. Maar nu volg ik jouw advies en verander die terug naar "Date". Hopelijk lukt dit nog.

Ik zal het proberen en de invoer vervolgens trachten met de schrijfwijze: YYYY-MM-DD.

Laat straks weten of ik er ben doorgesukkeld en of dit de goede oplossing is voor mijn post.
 
Tot straks,
Kosmoseistis 

Oké Sam, en andere lezers,

De beste oplossing voor mijn situatie:

1) is inderdaad de "Date/time" datatype te veranderen naar "Date". Lukte goed ondanks ik reeds records in die database had. De datum blijft behouden en de uren/minuten/seconden verdwijnen gewoon uit de records.

2) Voor de invoer is het gewoon de juiste schrijfwijze gebruiken: yyyy-mm-dd

Alles werk nu, dus nogmaals bedankt voor de aangereikte oplossing Sam.

Greetz,

Kosmoseistis  
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s