Ik haal met PHP de verjaardagen uit MySQL (YYYY-MM-DD) en bekijk een voor een of iemand jarig is. (of binnen 7 dagen)
als dat zo is wordt dat mbv een applet op het beeld gezet.
Maar hoe bepaal ik zo efficient mogelijk wie er binnen 7 dagen jarig zijn.
Ik heb nu iets van..
$result = mysql($database, "select naam, geb_datum FROM $table order by geb_datum");
$num2 = mysql_numrows($result);
for ($teller=0; $teller<$num2; $teller++)
{
$datum = mysql_result($result,$teller,"geb_datum");
$jarige = mysql_result($result,$teller,"naam");
$tm1 = mktime (0,0,0,date("m"),date("d"),date("Y"));
$tm2 = mktime (0,0,0,date("m"),date("d")+7,date("Y"));
$day = substr($datum,8,2);
$month = substr($datum,5,2);
$tm3 = mktime (0,0,0,$month,$day,date("Y"));
$dag = date("w",$tm3);
if ($tm3>$tm1 && $tm3<$tm2)
{
// if TRUE iemand is binnen 7 dagen jarig.
// met $dag is te bepalen op welke dag $jarige jarig is.
}
}
maar is eigenlijk onzin om steeds elke row op deze manier te controleren.
kan het niet makkelijker
zoiets als (dit werkt niet vanwege verkeerd jaartal)(dat het jaartal niet gebruikt wordt bij de controle ofzo)
..WHERE (geb_datum>$day_nog) and (geb_datum<$day_over7dagen)....(ofzo)
iemand die het nog snapt
die een idee heeft ? 
en kom niet met opmerking van: maak 3 fields, 1 voor dag,maand,jaar
als dat zo is wordt dat mbv een applet op het beeld gezet.
Maar hoe bepaal ik zo efficient mogelijk wie er binnen 7 dagen jarig zijn.
Ik heb nu iets van..
$result = mysql($database, "select naam, geb_datum FROM $table order by geb_datum");
$num2 = mysql_numrows($result);
for ($teller=0; $teller<$num2; $teller++)
{
$datum = mysql_result($result,$teller,"geb_datum");
$jarige = mysql_result($result,$teller,"naam");
$tm1 = mktime (0,0,0,date("m"),date("d"),date("Y"));
$tm2 = mktime (0,0,0,date("m"),date("d")+7,date("Y"));
$day = substr($datum,8,2);
$month = substr($datum,5,2);
$tm3 = mktime (0,0,0,$month,$day,date("Y"));
$dag = date("w",$tm3);
if ($tm3>$tm1 && $tm3<$tm2)
{
// if TRUE iemand is binnen 7 dagen jarig.
// met $dag is te bepalen op welke dag $jarige jarig is.
}
}
maar is eigenlijk onzin om steeds elke row op deze manier te controleren.
kan het niet makkelijker
zoiets als (dit werkt niet vanwege verkeerd jaartal)(dat het jaartal niet gebruikt wordt bij de controle ofzo)
..WHERE (geb_datum>$day_nog) and (geb_datum<$day_over7dagen)....(ofzo)
iemand die het nog snapt
en kom niet met opmerking van: maak 3 fields, 1 voor dag,maand,jaar
Taaaa taa taa taaaa taa taa ta taaataaaaa.