Hallo Mark,
ich möchte aus einer MySQL-Datenbank, in der in einem eine DATE-Field das Geburtsdatum hinterlegt ist, Liste mit diesen Personen, die in den nächsten n Tagen Gebutzstag haben.
Das Problem ist, dass "... WHERE Gebdat-NOW()<n" nicht funktioniert, da das Geburtsdatum ja in der Vergangenheit liegt, das Geburtstagsdatum aber in der Zukunft liegt.
Ich bezweifle, dass Du das ueber eine nette kurze SQL-Abfrage
loesen kannst, solange die Daten im DATETIME oder TIMESTAMP Format
vorliegen, weil dort ja die Jahreszahlen mit dabei sind.
Als Loesungsansatz wuerde ich vorschlagen:
Mach eine zusaetzliche Spalte: Der wievielte Tag des Jahres
ist der Geburtstag.
PHP-Funktion: date("z");
Der 23. Januar ist der 23. Tag.
Der 4. Februar ist der 35. Tag.
Differenz: 12 Tage.
Diese Differenz duerfte man ziemlich einfach in einem SQL Statement einbauen koennen.
Dann bleiben noch als kleine Huerden:
* Schaltjahre - der 3. Maerz ist der 62. bzw. 63. Tag des Jahres.
(Hier IMHO nicht so wichtig, solange Du die n Tage genug gross machst.)
* Der Jahreswechsel - der 5. Januar ist 7 Tage vom 29. Dezember entfernt.
Die eigentliche Programmierarbeit lasse ich Dich selbst machen:-)
Uebersicht der Datums- und Zeitfunktionen in PHP:
http://www.php.net/manual/de/ref.datetime.php
Die Funktion date():
http://www.php.net/manual/de/function.date.php
HTH, mfg
Thomas