Костя Костя — «грёбаный декабрь!»
сцайт об дружбе
...

В ближайшем будущем ожидается:

29 Мая 2012 / 32 Алексей
30 Мая 2012 / 32 Алексей
08 Июня 2012 / 17 PHP user
13 Июня 2012 / 32 Максим
26 Июня 2012 / 32 Андрей
30 Июня 2012 / 33 Olya
01 Июля 2012 / 32 Денис
01 Июля 2012 / 32 Денис
03 Июля 2012 / 32 Andy
18 Июля 2012 / 30 Алексей
01 Августа 2012 / 32 Не Хухь
01 Августа 2012 / 32 Max Denisov
23 Августа 2012 / 31 Миха
18 Сентября 2012 / 31 Галя
14 Октября 2012 / 32 Kikudziro
17 Октября 2012 / 32 Дарья
24 Октября 2012 / 20 M. Kartashov
24 Октября 2012 / 24 anuta
27 Октября 2012 / 37 Kostya
09 Ноября 2012 / 31 Светлана
09 Ноября 2012 / 31 Светик
08 Января 2013 / 33 Серега
25 Января 2013 / 31 Елена
04 Апреля 2013 / 34 Тарапыга
13 Апреля 2013 / 31 Оленька
09 Мая 2013 / 32 Лёха Пшенников
15 Мая 2013 / 33 Илья Ролдугин

Как найти список будущих дней рождений. PHP & MySQL.

Имеем табличку с пользователями, в поле BIRTH_DAY (date) записана дата рождения, например 1980-06-13, а так-же текущее время в UNIX_TIMESTAMP, скажем 1089891796 (иногда бывает удобно в начале пргораммы зафиксировать время, а не пользоваться в запросах вызывом NOW()).
Дальше, берём и пишем запрос:
    select ID,
           concat(if ((@difference:= date_format(BIRTH_DAY, '%m%d')
                      - date_format(from_unixtime(1089891796),'%m%d')) < 0, 1, 0)
                  + (@year:= extract(year from from_unixtime(1089891796))),
                  '-', date_format(BIRTH_DAY, '%m-%d')) as NEXT_BIRTH_DAY,
           @difference != 0,
           @year - date_format(BIRTH_DAY, '%Y') + (@difference < 0)
           from USERS
           order by NEXT_BIRTH_DAY asc
           limit 10
    
В результате получим несколько строк со слебующими столбцами:
  1. id пользователя,
  2. дату следующего (текущего) дня рождения,
  3. флаг: true (1) - если день рождения сегодня,
  4. сколько человеку исполнится лет.
Rambler's Top100 вэб студия. сайты и программы для интернета
© 2002-2012 simaco
wap | 0.3918с.