Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Дни рождения пользователей


Автор: JFox 10.10.2010, 12:11
Здравствуйте, стоит задача сделать блок посвященный грядущим дням рождениям пользователей сайта.

В базе дни рождения забиты в формате DATE 

Идея заключается в том, что бы получить список пользователей сайта, у которых в текущем месяце будет день рождение, напротив каждого пользователе количество дней до его дня рождения, необходимо обойти проблему с теми пользователями, у которых день рождения 1 числа, так как они появятся в списке сразу в день рождения (а надо же подготовится)) ), и выделять тех, у которых сегодня день рождение.

Как то я встретил в сети интересный вариант решения данной задачи,  но потерял код, а найти не получается.

Если у вас есть под рукой вариант решения поставленной задачи,  напишите пожалуйста, буду презнателен)


Попробовал решить это так (изменив предварительно поля хранения даты рождения , д,месяц,год в разных ячейках):
Код

<?
$d = date(d);
$m = date(m);
$result = mysql_query ("SELECT * FROM users WHERE d>'$d' AND m='$m' ORDER BY d");
while ($myrow = mysql_fetch_array ($result)) {
$remain=($myrow["d"]-"$d");
printf ("<a style='text-decoration: none' href=http://www.ganjawars.ru/info.php?id=%s/>%s</a> 
[$remain]<br>", $myrow["idp"], $myrow["nik"]);
}
?>

но отображается коряво, не убираются прошедшие дни рождения да и вообще мне кажется что код составлен очень плохо

Автор: Akina 10.10.2010, 12:56
1) Когда пишешь в форум по MySQL, следует удалять PHP-код.
2) Разумнее показывать дни рождения за N дней, а не в текущем месяце.
3) Используй DateDiff().

Автор: JFox 10.10.2010, 13:56
Akina, сайт создан для ограниченной группы людей (100+- человек), посему требуется отображать всех именинников месяца

Автор: Akina 10.10.2010, 14:23
Да пожалуйста... но как дополнение.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)