pragmaMx Support Forum

pragmaMx => Individuelle Anpassungen => Thema gestartet von: 47klaus47 am 17 August 2011, 15:43:30

Titel: Birthday Block
Beitrag von: 47klaus47 am 17 August 2011, 15:43:30
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?
Titel: Re:Birthday Block
Beitrag von: Andi am 23 August 2011, 11:29:39
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 ;)