Geburtstage in den nächsten 10 Tagen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
phillip
Mitglied
Beiträge: 933
Registriert: 20.03.2005 12:00

Geburtstage in den nächsten 10 Tagen

Beitrag 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?
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: Geburtstage in den nächsten 10 Tagen

Beitrag 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
Ich bin nicht ganz dicht.... na und.
Benutzeravatar
Dufftown
Mitglied
Beiträge: 696
Registriert: 08.12.2008 14:22
Wohnort: Barsinghausen

Re: Geburtstage in den nächsten 10 Tagen

Beitrag 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?
Meine SQL-Statements sind immer ohne Tabellen-Prefix. Also ggf. "phpbb_" oder Euer Prefix einfügen.
KEIN Support auf unaufgeforderte PN
Antworten

Zurück zu „Coding & Technik“