En toch krijg ik het resultaat ze zien, terwijl ik dat niet wil. Ik wil alleen de programma's te zien krijgen waarvan de sluitingsdatum nog niet geweest is.
Dit is mijn query:
$query = mysql_query("SELECT kijkcijfers.id,
kijkcijfers.kijkcijfer,
programma.programma,
DATE_FORMAT(programma.sluiting, '%e-%c-%Y %k:%s') as sluitingsdatum
FROM kijkcijfers
LEFT JOIN
programma
ON
kijkcijfers.prog = programma.id
WHERE kijkcijfers.lid = ".$_SESSION['ingelogd']."
AND programma.sluiting < NOW()");
<?
$query = mysql_query("
SELECT
kijkcijfers.id,
kijkcijfers.kijkcijfer,
programma.programma,
DATE_FORMAT(programma.sluiting, '%e-%c-%Y %k:%s') as sluitingsdatum
FROM
kijkcijfers
LEFT JOIN
programma
ON
kijkcijfers.prog = programma.id
WHERE
kijkcijfers.lid = ".$_SESSION['ingelogd']."
AND
programma.sluiting > CURDATE()");
?>
Ik heb zelf ook nog even na zitten denken, en ik dacht: we kunnen gewoon kijken hoeveel seconden er tussen de data zit, en dat moet positief zijn. Ik had zelf dus iets van:
TIME_TO_SEC(TIME_DIFF(programma.sluiting, NOW()))
Maar dat geeft:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(programma.sluiting, NOW()))
Je kan er ook in je Dropdown boxes al deels voor zorgen dat alleen data later dan vandaag nog mogelijk zijn. (hiervoor kan je bijv AJAX, of puur JS gebruiken) dat is denk ik de meest vriendelijke manier, waarbij je de mogelijkheid voor een gebruiker om een datum die na vandaag komt in te laten vullen.
Selecteerd die bijvoorbeeld dit jaar, dan moeten de 1e 3 maanden al wegvallen in de maandbox. Selecteerd die deze maand, dan moeten de 1e 27 dagen ook al wegvallen. Je snapt wel waar ik heen wil. Dit is wel de mooiste optie, maar het is ook lastig te realiseren.
Het werkt bijna, alleen als ik een tijd opgeef die vandaag al geweest is (op het moment van schrijven: 12 uur 's middags) dan wordt deze wel weergeven, terwijl die tijd toch al geweest is..
[edit]
@robert,
Het is voor een admin panel, en daarin weet de beheerder wel wanneer de sluitingstijd is. Ik ga dit dus niet inbouwen. Ik zal het wel voorstellen aan meneer.
[/edit]
Ok, ik wist niet dat het om een adminpanel ging :) Ik ben namelijk van mening dat je bezoekers input zoveel mogelijk moet beperken in fouten. -> Maar voor een adminpanel mag je er wel vanuit gaan dat diegene niet zomaar wat doen.
Verder zal je even die functie van Jan, als je die gebruikt aan moeten passen. CURDATE() geeft alleen yyyy-mm-dd terug, als je ook op tijd wil controleren zal je NOW() moeten gebruiken op die plaats.