Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выводить заранее (запрос)
 
 автор: Max Vasin   (18.05.2008 в 10:40)   письмо автору
 
 

Вопросик возник. Объясню по пунктам:)

Есть таблица, в которой записаны данные о участниках проекта.

В колонке birth записи о дне рождения участника (к примеру, 1976-07-24).

На сайте есть колонка "День рождение", в которую предполагается выводить информацию у кого сегодня день рождение. Но так как участников меньше чем дней в году:), то решил сделать таким, образом, если нет на текущую дату именника, то выводить ближайшего по дате у кого будет.
Но не могу сообразить как сделать запрос:(. Просьба, подсказать

----
Regards, Max Vasin.

   
 
 автор: cheops   (18.05.2008 в 10:57)   письмо автору
 
   для: Max Vasin   (18.05.2008 в 10:40)
 

Имеется в виду строго за ближайший день? Может вам просто подойдёт запрос выводящий ближайшие 10-15 человек, у которых намечается день рождение?

   
 
 автор: Max Vasin   (18.05.2008 в 11:08)   письмо автору
 
   для: cheops   (18.05.2008 в 10:57)
 

хм.. как-то не подумал об этом.
может будет лучше выводить у кого ДР в этом месяце?

Не отказался бы посмотреть и на Ваш вариант:)

----
Regards, Max Vasin.

   
 
 автор: cheops   (18.05.2008 в 12:59)   письмо автору
 
   для: Max Vasin   (18.05.2008 в 11:08)
 

С текущим месяцем вообще всё просто
SELECT * FROM tbl 
WHERE YEAR(NOW()) = YEAR(birth) AND MONTH(NOW()) = MONTH(birth)
ORDER BY birth

Если необходимо вывести 10 ближайших именинников, можно воспользоваться запросом
SELECT * FROM tbl
WHERE birth >= NOW()
ORDER BY birth
LIMIT 10

   
 
 автор: Max Vasin   (18.05.2008 в 13:15)   письмо автору
 
   для: cheops   (18.05.2008 в 12:59)
 

спасибо)
знаки у Вас только не верно стоят
в первом: год текущий должен быть больше табличного

во втором:
<=


----
Regards, Max Vasin.

   
 
 автор: cheops   (18.05.2008 в 13:56)   письмо автору
 
   для: Max Vasin   (18.05.2008 в 13:15)
 

С первым замечанием согласен.
Во-втором случае лучше даже воспользоваться запросом вида
SELECT * FROM tbl
WHERE DATE_FORMAT('%m-%d', birth) >= DATE_FORMAT('%m-%d', NOW())
ORDER BY birth
LIMIT 10

   
 
 автор: Max Vasin   (18.05.2008 в 14:16)   письмо автору
 
   для: cheops   (18.05.2008 в 13:56)
 

хм... ничего не возвращает запрос

----
Regards, Max Vasin.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования