Блок дней рождений

Главные вкладки

Аватар пользователя p-code p-code 14 апреля 2008 в 11:12

Создал новый тип материала "Персоналии". Там присутствует поле "День рождения". Есть какой-либо способ выдавать в блоке список этих самых персоналий, чей день рождения приходится +/- 2дня от текущего?

Комментарии

Аватар пользователя p-code p-code 14 апреля 2008 в 12:50

Не получается Sad В фильтре добавил:
Day: менее now+2day
Day: больше now

Выводит все...

И походу задать нужное мне условие не получится. Как там два фильтра объединить?

Аватар пользователя p-code p-code 14 апреля 2008 в 13:05

Мне бы получить данные по запросу

SELECT vid, nid, field_fio_value, field_bithday_0_value, DAYOFYEAR( now( ) ) - DAYOFYEAR( `field_bithday_0_value` ) afd
FROM content_type_person
WHERE DAYOFYEAR( now( ) ) - DAYOFYEAR( `field_bithday_0_value` ) <3
AND DAYOFYEAR( now( ) ) - DAYOFYEAR( `field_bithday_0_value` ) > -3
ORDER BY afd DESC
LIMIT 0 , 30

и вывести... Но вот php не знаю....

Аватар пользователя KCEOH KCEOH 14 апреля 2008 в 18:18

Использовать аргументы. Получать дату, записывать, прибавлять 3600*24*2, записывать в другую переменную. Добавлять в фильтр.

Аватар пользователя SiR SiR 15 апреля 2008 в 0:50

Может это спасет

$start_date=date("nd",mktime(0, 0, 0, date("m")  , date("d")-1, date("Y")));
$end_date=date("nd",mktime(0, 0, 0, date("m")  , date("d")+7, date("Y")));

$sql="SELECT id, bday, DATE_FORMAT(bday,\"%e\") as bdd, DATE_FORMAT(bday,\"%c\") as bdm, sname, fname, mname ";
$sql.="FROM {personal_table}  WHERE (nowork='0') ";
$sql.="AND ( DATE_FORMAT(bday,\"%c\")*100+DATE_FORMAT(bday,\"%e\") >= '$start_date' ) ";
$sql.="AND ( DATE_FORMAT(bday,\"%c\")*100+DATE_FORMAT(bday,\"%e\") < '$end_date' ) ";
$sql.="ORDER BY DATE_FORMAT(bday,\"%c\")*100+DATE_FORMAT(bday,\"%e\") ";

Правда дальше надо ручками прописать в блоке, то что хочется видеть.
У меня этот кривой код работает уже много лет, почти с момента начала изучения мной sql.

Аватар пользователя p-code p-code 15 апреля 2008 в 11:18

Да... походу дела проще написать скрипт на perl-е, который будет готовить текст (по крону) и его уже вставлять в блок Smile

Вывод как делать? SQL запрос я знаю какой надо написать (я его выше указал). Как данные по этому sql получить и вопрос как вывести эти данные? //PHP не знаю.

Хотя,... вытаскивание данных по крону кажется наилучшим вариантом (незачем каждый раз эти данные тянуть...). А скрипт писать тогда мне все равно в Перле, так что наверное так и поступлю.