Zet de geboortedatum in een MySQL tabel als een type DATE. Dan kun je met deze query de volgende verjaardag laten zien:
<?php
$sql = "
SELECT geboortedatum,
CASE
WHEN MONTH(datum) < MONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE())+1, DATE_FORMAT(datum, '-%m-%d'))
WHEN MONTH(datum) > MONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE()), DATE_FORMAT(datum, '-%m-%d'))
WHEN MONTH(datum) = MONTH(CURDATE()) THEN
CASE
WHEN DAYOFMONTH(datum) < DAYOFMONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE())+1, DATE_FORMAT(datum, '-%m-%d'))
WHEN DAYOFMONTH(datum) >= DAYOFMONTH(CURDATE()) THEN CONCAT(YEAR(CURDATE()), DATE_FORMAT(datum, '-%m-%d'))
END
END
AS volgende_verjaardag
FROM tabelnaam
";
?>
Het probleem daarmee is, dat altijd het huidige jaar genomen wordt. Maar stel nu dat iemand in januari jarig is? Ik zal even iets in PHP maken voor je. Momentje.