Birthday Block

Begonnen von 47klaus47, 17 August 2011, 15:43:30

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

47klaus47

Hallo zusammen,
ich bin gerade dabei den Birthday2 Block so zu ändern das mir nicht nur die Geburtstag von heute angezeigt werden sondern auch der nächste Geburtstag.

Das was mir jetzt noch fehlt ist die SQL Abfrage um den nächsten Geburtstag zu ermitteln.

Die folgende Abfrage gibt mir die heutigen Geburtstage aus:

$sql2 = "SELECT uname, (YEAR( CURRENT_DATE ) - YEAR( user_bday )) - ( RIGHT( CURRENT_DATE, 5 ) < RIGHT( user_bday, 5 ) ) AS user_age FROM {$user_prefix}_users WHERE MONTH(user_bday)=MONTH(CURRENT_DATE) AND DAYOFMONTH(user_bday)=DAYOFMONTH(CURRENT_DATE) AND YEAR(user_bday)<YEAR(CURRENT_DATE) AND user_stat=1 ORDER BY user_age DESC;";

Kann mir jemand dabei helfen die Abfrage umzustellen?

Andi

Moin :)

das ist nen ganz schöner Brocken....
Im Internet hab ich auch nichts richtig funktionierendes gefunden, aber ich glaub ich habs....

SELECT
  uname,
  user_bday,
  (YEAR(CURRENT_DATE) - YEAR(user_bday)) - (RIGHT(CURRENT_DATE, 5) < RIGHT(user_bday, 5)) AS user_age,
  DATEDIFF(DATE(DATE_FORMAT(user_bday, CONCAT(IF((RIGHT(CURRENT_DATE, 5) <= RIGHT(user_bday, 5)), YEAR(CURRENT_DATE), YEAR(CURRENT_DATE)+1), '-%m-%d'))), CURRENT_DATE) as days_to
FROM `{$user_prefix}_users`
WHERE user_bday IS NOT NULL AND user_bday <> '0001-01-01' AND user_bday <> '0000-00-00' AND user_stat=1
HAVING days_to <= 3
ORDER BY days_to ASC, user_age DESC


Anbei ein kompletter Beispielblock für pragmaMx 1.12rc ;)
schön´s Grüssle, Andi