Nou heb ik een agenda database met aar in optredens en nu wil ik op de home pagina de eerst volgende optreden weergeven. (dus niet de nieuwste)
dit had ik zelf eerst gemaakt (maar wist bijna zeker dat het niet werkte)
<?php
$dagnu = date(j);
$maandnu = date (n);
$jaarnu = date (Y);
$res = mysql_query('SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= $dagnu, maand >= $maandnu, jaar >= $jaarnu');
$arr = mysql_fetch_assoc($res);
echo "<i>".$arr["dag"]."-".$arr["maand"]."-".$arr["jaar"]."</i><br /><br /><b>".$arr["plaats"].":</b><br />".$arr["info"]."";
mysql_free_result($res);
?>
Omdat ik dat nog niet zo goed snapte
maar wat is er fout aan het werkt toch?
Ik weet alleen niet hoe je varabelen in MySQL gebruikt hier in deze regel dus:
SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= $dagnu, maand >= $maandnu, jaar >= $jaarnu
<?php
mysql_query("SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= " . $dagnu . ", maand >= " . $maandnu . ", jaar >= " . $jaarnu);
<?php
mysql_query("SELECT * FROM agendapunten ORDER BY jaar, maand, dag, ID WHERE dag >= ".$dagnu.", maand >= ".$maandnu.", jaar >= ".$jaarnu);
Neemt uiteraard niet weg dat, zoals JeXuS reeds zei, dit totaal niet de manier is. Stop je gegevens in een DATETIME, en haal deze dan gewoon op met
Je zou beter een DATE type nemen. Je gaat toch ook niet 10,0 schrijven als je 10 schrijft. Een probleem is dat dag>=$dag niet altijd gaat kloppen (idem voor maand).
30 april -> 1 mei (terwijl 1 mei groter is dan 30 april)
Ik dacht zelf aan WHERE CURRENT_DATE()<=datum
maar als ik dat doe dan komt er gewoon niks de pagina laad wel en het tabeletje ook met alle "-" tekentjes alleen er komt geen datum, plaats en info. en dar heb ik overgens bij elke where ik snap niet hoe dat komt?
NU(met de code die ik gegeven heb) komt de oudste optreden(agendapunt): LINK