Seite 1 von 1

Geburtstage in den nächsten 10 Tagen

Verfasst: 27.07.2009 13:52
von phillip
Hallo ihr lieben

Ich versuche gerade die Geburtstage in den nächsten 10 Tage herauszusuchen, was auch recht gut klappt bis jetzt:

Code: Alles auswählen

$sql = "SELECT *
        	FROM users
		WHERE DATE_FORMAT(user_birthday, '%m%d') BETWEEN DATE_FORMAT(CURDATE(), '%m%d') AND DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL 10 DAY), '%m%d')
		ORDER BY user_birthday"; 
Das Problem, das sich jetzt herausgestellt hat ist, dass diese Abfrage nicht hinaus ins neue Jahr reicht.
Wenn wir z.B den 28.12 haben, und ich die nächste 10 Tage abfragen will, klappt das nicht.

Wie könnte ich dieses Problem umgehen?

Re: Geburtstage in den nächsten 10 Tagen

Verfasst: 27.07.2009 14:53
von Helmut
Hallo phillip,

schaue dir mal den Upcoming Birthday list 1.0.2 Mod von lefty74 an, der macht im Prinzip schon das was du willst. Wenn du was eigenes machen willst, dann schaue dir einfach dort mal die DB Abfragen und die Auswertung danach an.

Gruß Helmut

Re: Geburtstage in den nächsten 10 Tagen

Verfasst: 27.07.2009 14:55
von Dufftown
Moin,

sicher dass das das einzige Problem ist? Immerhin steht ja ggf. auch das Jahr mit im Feld user_birthday.

Ich würde jedenfalls mit dem Timestamp rechnen für den Vergleich.
Also den von heute 0:00 Uhr, dann den von in 10 Tagen 23:59,59 Uhr. Das als Vergleich für das BETWEEN.
Und den NÄCHSTEN Geburtstag des User auch in Timestamp umrechnen. Also vom User Monat und Tag nehmen, und für das Jahr das aktuelle Jahr bzw. wenn der Geburtstag dieses Jahr schoon vorbei ist das NÄCHSTE Jahr, also 1 dazu.

Evtl. ist das genau das Problem in Deinem SQL. Weil Du vom user_birthday nur Monat und Tag nimmst. Nimmt der vielleicht automatsich immer das aktuelle Jahr dazu? Aber nie das nächste?