Hey, Ik heb een vraag... Misschien een beetje een domme vraag...

Maar goed, ik ben nu bezig met een formulier en in dat formulier zit "datum aanvraag" en dat moet altijd op de datum van vandaag zijn, deze moet ook weg geschreven worden met het formulier naar mijn database.

De datum van vandaag heb ik nu staan in javascript, maar dit werkt niet met input.

Dit is mijn code:

<input type="text" tabindex="9" size="20" id="date">
<script name=mutatiedatum type="text/javascript">
window.onload=function()
{
var output=document.getElementById('date');
output.disabled=true;
var mydate=new Date(),
month=mydate.getMonth(),
day=mydate.getDate(),
year=mydate.getYear();
output.value = (day<10?'0'+day:day)+'-'+(month<10?'0'+month:month)+'-'+year;
}
</script>


En ik ben nog niet zo'n ster in php
Voor php [php]date[/php]().
En voor sql NOW().
Thanks, ik ga er mee aan de slag.
mssql gebruikt GETDATE() voor de huidige datum :)
GETDATE() is voor de datum EN tijd als ik het goed heb.
NOW() geeft in MySQL een DATETIME. Wil je alleen een DATE, gebruik dan CURDATE ()
Ik begruik nu "CURDATE()" alleen hij slaat letterlijk "CURDATE()"op.


Je moet hem toch op deze manier invullen?

$sql="INSERT INTO mutatie_a (id, naam, BSN_nummer, afdeling, mutatiedatum )
VALUES
(' ','$_POST[naam]','$_POST[BSN_nummer]','$_POST[afdeling]','CURDATE()' ) ";

Of maak ik nu een hele domme fout?
Nee hoor,

maar je moet de quotes om CURDATE() weghalen.

( anders 'denkt' mysql dat je het als letterlijke string in de dB wilt zetten en het is een mysql functie die uitgevoerd met worden)
roland schreef op 25.11.2009 09:38
Nee hoor,

maar je moet de quotes om CURDATE() weghalen.

( anders 'denkt' mysql dat je het als letterlijke string in de dB wilt zetten en het is een mysql functie die uitgevoerd met worden)
Komt dit ook niet doordat de kolom waar wordt opgeslagen een VARCHAR is? Zou MySQL echt zo krom zijn date die een string kan opslaan in een DATE-veld?
Nee, lijkt me niet, mysql zal eerst de query evalueren (wat moet ik er mee gaan doen...) , en als ie dan waarde tussen quotes tegenkomt hoeft/wordt dat niet geevalueerd/uitgevoerd.
Het daadwerkelijk in de dB zetten gebeurd daarna * en dan worden ook controles uitgevoerd, voorzover die worden uitgevoerd. Van een te lange string wordt alleen het begin dat past in de dB opgeslagen, rest is weg!
Die string in een DATE-veld? ja, misschien propt ie dat er ook gewoon in..... ?
probeer het eens !


*ps dat lijkt mij de waarschijnlijke gang van zaken

Reageren