Ik heb een PHPmyAdmin MYSQL database aangemaakt met daarin speeldagen die benoemnd worden door DATETIME.
Nu Kan ik er vanalles mee doen echter ben ik opzoek naar een functie die dmv CURDATE de eerstvolgdende match opzoekt, met CURDATE zoekt hij echter alleen specifiek die datum en het kan dus zijn dat enkele dagen later of zelfs maanden de volgende match pas is.
Ik kan dit oplossen door in de DB aan te geven of de match gespeeld is en op die manier de eerstvolgende die niet gespeeld is te selecteren en LIMIT op 1 zetten echter wanneer ik dan door omstandigheden de DB niet update is het niet up-to-date.
De Functie INTERVAL trekt een X aantal dagen of maanden eraf maar kreeg ik ook niet zo ingesteld dat hijde eerstvolgende weergeeft.
@Jurgen: dit zal de vorige wedstrijd weergeven en niet de eerstvolgende. De ORDER BY is inderdaad verstandig, je weet immers niet op welke manier ze in de database ingevoerd zijn. Je moet dan echter wel ASC nemen, aangezien je de kleinste eerstvolgende datum wilt weten ;)
SELECT *
FROM tabel
WHERE datum > NOW()
ORDER BY datum ASC
LIMIT 1
Je gebruikt DATETIME als kolom zei je, NOW geeft ook een datetime en CURDATE alleen de datum.. Ik zou overigens dan wel dit gebruiken:
SELECT *
FROM tabel
WHERE datum >= CURDATE()
ORDER BY datum ASC
LIMIT 1
Nu geeft die de wedstrijd ook nog weer als die vandaag gespeeld wordt, overigens heb ik nu wel curdate gebruikt, omdat die dan pas de dag Nadat de wedstrijd is gespeeld de volgende weergeeft.. Stel dat je op Zaterdag speelt, dan geeft die vanaf zondag de wedstrijd van volgende week weer.
CURDATE is idd enkel de datum(dag) ik kan me voorstellen dat bezoekers na een gespeelde wedstrijd thuiskomen en meteen willen kijken wanneer er weer wordt gespeeld