Ik ben al weer wat verder met mijn agenda script maar stuit nu op een volgend probleempje.
Door dat de datums bij mijn provider en mijn lokale testomgeving verschilden heb ik op aanraden van iemand de opdracht:
WHERE datum >= NOW() ORDER BY datum,tijd
veranderd in:
WHERE datum >= CURRENT_DATE ORDER BY datum,tijd
en dit werk wel!
Nu heb ik op aanraden van jullie in plaats van het aparte DATE en TIME veld een DATETIME veld gecreeerd, en alle reeds bestaande datun en tijd gegevens verplaatst met
UPDATE
werk
SET
datum_tijd = CONCAT(datum, ' ', tijd)
Ook dit heeft goed gewerkt.
Maar hoe selecteer ik nu de datum en de tijd zodat ik alleen de agenda punten van de huidige tijd en datum + die in de toekomst krijg te zien.
ORDER BY datum,tijd
werk natuurlijk niet meer omdat het nu één DATETIME veld is geworden.
Tip: Geef bij een ORDER BY altijd de richting aan, dus altijd ASC of DESC gebruiken. Ook al is ASC de default, het scheelt je een hoop zoekwerk bij debuggen. Het zorgt voor duidelijkerheid.
Super, het werkt, alleen moest het zijn WHERE DATE(datum_tijd) >= CURRENT_DATE ORDER BY datum_tijd ASC
Nu krijg ik dus de datum en tijd met ingang van 00:00 vandaag, maar kan ik dit ook op de tijd van nu selecteren, dus waar agenda punten van een minuut geleden al niet meer te zien zijn?
Dus een werkelijke wwergave wat er vanaf NU tot in de toekomst moet gebeuren?
Oeps, daar was ik dus al bang voor, als ik het oude veld TIJD niet meer mee selecteer verdwijnt de tijd van het scherm.
Hoe haal ik nu de mee ingevoerde tijd uit het DATETIME veld?
Beste Robert, daar zat hem het probleem in bij mijn vorige topic, mijn locale test server laat bij NOW() de datum zien vanaf morgen in plaats van vandaag.
Met CURRENT_DATE is dat probleem opgelost.
Maar nu is de vraag, hoe haal ik de mee ingevoerde tijd uit het DATETIME veld en hoe selecteer ik daar mede op NU en in de toekomst.
Hoi Frank, na deleten van de twee oude velden datum en tijd uit de db en het oproepen van het script met:
$sql= "select CONCAT(
ELT(DAYOFWEEK(datum_tijd), 'zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'),
' ',
DAYOFMONTH(datum_tijd),
' ',
ELT(MONTH(datum_tijd), 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'),
' ',
YEAR(datum_tijd)
) AS datum_tijd_NL,DATE_FORMAT( datum_tijd, '%H:%i' ) AS tijd,nacht,soort,rit,user from werk WHERE DATE(datum_tijd) >= CURRENT_DATE ORDER BY datum_tijd ASC";
krijg ik de volgende foutmelding:Unknown column 'datum' in 'where clause'
IK zie de fout niet direct.
Tevens vraag ik mij af hoe ik nu de opgevraagde gegevens uit het datetime veld kan opsplitsen zodat ze in twee aparte kolomen van de tabel komen na het echo'n:
krijg ik de volgende foutmelding:Unknown column 'datum' in 'where clause'
In bovenstaande query zie ik nergens 'datum' terugkomen, dat kan dus ook nooit goedgaan. Als jij geen alias 'datum' aanmaakt, kun je daar ook niks mee gaan doen. Of doel jij op de alias 'datum_tijd_NL' ?
Jij zult het voorbeeldje moeten inpassen in jouw query.