Verjaardagslijst
Tijdje hier niet geweest, maar toch even misschien wat tips van jullie nodig.
Ik wil graag een verjaardagslijst maken. Momenteel heb ik al het volgende. Ik haal via een SQL de geboortedatum op uit een database. In het volgende format YYYY-MM-DD. Daarna voer ik een functie uit waarbij ik bereken hoe oud een persoon wordt. Dit werkt allemaal prima. Het probleem is alleen nu dat ik degene die het eerstvolgend jarige bovenaan wil hebben. Als ik nu sorteer sorteert hij ook op het geboortejaar.
Iemand tips hoe ik dat laatste aan kan pakken?
Thnxs!
maar als je nu uitrekend dmv een query over hoeveel dagen een persoon jarig is "als dat lukt" dan kan je daar toch op sorteren....
Mvg,
Erik
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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
ORDER BY volgende_verjaardag DESC
LIMIT 1
";
?>
$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
ORDER BY volgende_verjaardag DESC
LIMIT 1
";
?>
Edit:
Hier is laatst een lang topic over geweest. Uiteindelijk heb ik deze er van gemaakt ;-)
Hier is laatst een lang topic over geweest. Uiteindelijk heb ik deze er van gemaakt ;-)
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Moet dat dan het veld zijn waar je de geboortedatum van pakt.
in -> volgende_verjaardag wordt de datum op geslagen.
Maar wat ik bedoel is, je verwijst naar een kolom datum is dat de geboortedatum die ik in mijn tabel heb staan?
En bovendien moet ik de hele lijst geordend krijgen, nu krijg ik maar 1 datum terug of moet ik dan een for loopje uitvoeren.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$sql = "
SELECT datum,
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
ORDER BY volgende_verjaardag DESC
";
?>
$sql = "
SELECT datum,
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
ORDER BY volgende_verjaardag DESC
";
?>
datum staat voor geboortedatum van de persoon inderdaad. Als er meer dan 1 wilt haal je de LIMIT weg, zoals ik nu heb gedaan.
Hoe kan je het makkelijkst die volgende_verjaardag echo'en?
mysql_query en een errorcheck erbij en daarna haal je de resultaten op met mysql_fetch_assoc.
Je voert je query uit met Ik ben hier nieuw, en heb een soortgelijke vraag, daarom open ik ook geen nieuw topic.
Ik heb een database met daarin alle leden van mijn vereniging.
Overzichtje van de tabellen:
ID Naam Voornaam Geboorte Categorie
De gegevens bij Geboorte staan er als volgt: 1927-05-26 00:00:00
Is er hier iemand zo vriendelijk om me het script te geven dat de verjaardagen van vandaag geeft. De weergave zou uiteindelijk moeten zijn:
1) Verjaardagen vandaag
2) Verjaardagen deze maand
Alvast heeeeeeel vriendelijk bedankt!
Ik moet het script nog even verder uitwerken maar als ik het binnenkort af heb kan ik het eventueel delen.
Nog even zeggen dat ik amper iets van PHP ken (kan zelf niets schrijven), kleine dingen aanpassen lukt me dan weer wel, door te kijken naar soortgelijke scripts
Thnxs, het is me gelukt!
Jan:
De gegevens bij Geboorte staan er als volgt: 1927-05-26 00:00:00
Is er hier iemand zo vriendelijk om me het script te geven dat de verjaardagen van vandaag geeft. De weergave zou uiteindelijk moeten zijn:
1) Verjaardagen vandaag
2) Verjaardagen deze maand
Is er hier iemand zo vriendelijk om me het script te geven dat de verjaardagen van vandaag geeft. De weergave zou uiteindelijk moeten zijn:
1) Verjaardagen vandaag
2) Verjaardagen deze maand
Ik wil wel even voor je kijken, maar wat bedoel je precies met verjaardagen deze maand?
Stel het is 14 augustus vandaag. Wil je dan alles van augustus? Of alleen vanaf nu tot het eind van de maand augustus? Of voor de komende 31 dagen, dus tot 14 september?
alles van augustus wil ik dan :)
Zou het dan lukken om zoiets in elkaar te steken? ik zou je heeeeeeeeeel dankbaar zijn ^^
Hoe pak je het trouwens aan als je een lijst hem met de laatste dagen van december en iemand komt er van januari al bij dan neemt ie op dit moment nog steeds 2006, hoe kan ik er dan voor zorgen dat hij dan 2007 als jaar neemt?
Quote:
Hier is laatst een lang topic over geweest. Uiteindelijk heb ik deze er van gemaakt ;-)
wel meer:
http://www.phphulp.nl/forum/searchtopic.php?cat=all&c=all&q=verjaardag
Doreen schreef op 28.10.2006 21:24:
Hoe pak je het trouwens aan als je een lijst hem met de laatste dagen van december en iemand komt er van januari al bij dan neemt ie op dit moment nog steeds 2006, hoe kan ik er dan voor zorgen dat hij dan 2007 als jaar neemt?
Daarvoor heb je DATEDIFF() in MySQL.