ik heb op m'n site de Verjaardags kalender (door Bas Kregeler op 26.08.2003) staan in combinatie met een Database.
Is het mogelijk om doormiddel van een script ook alleen de verjaardagen van 'vandaag' naar voren te halen?

De verjaardagen staan als volgt in de DB. DD/MM/JJJJ dus bijv. 14-02-2003

Het lukt mij niet, waarschijnlijk doordat het jaartal in de verjaardag staat (2003), en daar moet hij dus niet naar kijken, alleen naar de dag en de maand.

Is er iemand die mij kan helpen?
Je kan ze dan exploden
Zoiets als $datum = explode("/", $row[datum])

En dan de eerste 2 vergelijken dus $datum[0] en $datum[1]
Beste Mitch, dankjewel voor je reactie!

ik heb e.e.a. geprobeerd, maar het wil helaas nog niet werken. Het exploden (splitten) gaat wel goed, maar de controle op 'vandaag jarig' gaat nog niet goed. Ik heb nu dit:

<?php

$query = "SELECT nummer,geboortedatum,medewerker FROM tb_medewerkers WHERE (uitdienst=0)";
$result = mysql_query ($query);
while ($row = @mysql_fetch_object ($result)) {

//variabele die we gaan splitten:
$var = "$row->geboortedatum";
$var = explode("-", $var); //we splitten alles waar een - staat

$dagdatum = date ("d");
$maanddatum = date ("m");

if ("$dagdatum == $var[0]");
{
echo ("$row->medewerker");
echo ("<br>");
}
}

?>

Gevolg is dat ik een lijst krijg met alle medewerkers, ongeacht of ze nu jarig zijn of niet. Er gaat dus iets mis bij de 'IF', ik weet ook niet of dit de goede oplossing is, ben vrij nieuw met PHP. Kan iemand mij helpen?
where uitdienst=0 wil die 0 dan zeggen dat hij jarig is? anders zal je moeten zeggen where datum is $date ofzo?.
Wat een gepiel.

Ik neem aan dat de data in een datetime formaat in mysql staan.

gebruik gewoon de sql query:
SELECT nummer,geboortedatum,medewerker
FROM tb_medewerkers
WHERE (uitdienst=0)
AND month(geboortedatum) = month(now())
AND day(geboortedatum) = date(now())
dit:
<?

if ("$dagdatum == $var[0]");

?>
moet je volgens mij ff veranderen naar
<?

if ($dagdatum == $var[0]);

?>

en voor vergelijkingen kan je het beste <? time(); ?> gebruiken, dus dan krijg je
<?
$tijd = time();
$dagdatum = date("d.m.y", $tijd);
?>

als het goed is...
De datum staat niet als DateTime format in de DB, maar als varchar.

Ik heb er nu dit van gemaakt:

if ($dagdatum == $var[0]);

maar ook dit werkt helaas niet.
Where uitdienst=0 wil zeggen dat hij alleen de verjaardagen moet laten zien van de mensen die nog op het bedrijf werken.

Iemand nog een suggestie?
Converteer het naar datetime. Datum als varchar neerzetten is complete nonsense.
Slik.... $_ADJE['ATTACKS'].. ok maar hij heeft wel gelijk...

Dat maakt ut wss wel makkelijker :)
Wat een gepiel.

Ik neem aan dat de data in een datetime formaat in mysql staan.

gebruik gewoon de sql query:
SELECT nummer,geboortedatum,medewerker
FROM tb_medewerkers
WHERE (uitdienst=0)
AND month(geboortedatum) = month(now())
AND day(geboortedatum) = date(now())


Beste Arend, dank voor je reactie, ik heb de TB aangepast, er is nu een veld gebdatum bijgekomen, met als type 'datetime'. de datum staat als volgt in het veld 2000-02-17

M'n code ziet er zo uit:

<?php

$sql= "SELECT nummer,gebdatum,medewerker FROM tb_medewerkers WHERE (uitdienst=0) AND month(gebdatum) = month(now()) AND day(gebdatum) = date(now()) ";
$result = mysql_query ($query);
while ($row = @mysql_fetch_object ($result)) {

echo ("$row->medewerker");
echo ("$medewerker");
}

?>

Het resultaat is alleen helemaal niets, wat doe ik fout?
$sql= "SELECT nummer,gebdatum,medewerker FROM tb_medewerkers WHERE (uitdienst=0) AND month(gebdatum) = month(now()) AND day(gebdatum) = date(now()) ";
$result = mysql_query ($query);
while ($row = @mysql_fetch_object ($result)) {

echo ("$row->medewerker");
echo ("$medewerker");
}


Eerst zet je $sql en dan wil je $query uitvoeren :s
lijkt me logisch dat dat niet werkt ;)

Reageren