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

Форум MySQL

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

 

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

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

тема: Выборка по возрасту (даты)
 
 автор: Andchir   (05.11.2007 в 13:29)   письмо автору
 
 

Помогите, пожалуйста решить задачу.
В базе данных есть столбец типа date с именем data_rozhd, в него записывается дата рождения. Как сделать поиск по базе возрастов "от" и "до".

Делаю так:


SELECT * FROM table WHERE data_rojd BETWEEN '$vozr_date1' AND '$vozr_date2'


переменные $vozr_date1 и $vozr_date2 это возраст переведенный в даты:


function convdate($date)
{
$date=strtotime($date);
return strftime("%Y-%m-%d",$date);
}

$vozrr1 = $vozrast1."0000";
$vozr1 = date('Ymd') - $vozrr1;
$vozr_date1 = convdate($vozr1, 0);

$vozrr2 = $vozrast2."0000";
$vozr2 = date('Ymd') - $vozrr2;
$vozr_date2 = convdate($vozr2, 0);



Вобщем такой способ не работает. Знаю, что для этого должен быть способ проще и правельнее. Подскажите пожалуйста как надо.

   
 
 автор: Andchir   (05.11.2007 в 18:24)   письмо автору
 
   для: Andchir   (05.11.2007 в 13:29)
 

-

   
 
 автор: Andchir   (06.11.2007 в 11:03)   письмо автору
 
   для: Andchir   (05.11.2007 в 18:24)
 

Никто не поможет?

   
 
 автор: cheops   (06.11.2007 в 12:00)   письмо автору
 
   для: Andchir   (05.11.2007 в 13:29)
 

Не очень понятно, изначально $vozrr1 и $vozrr2 - это что и в чём изменяется?

   
 
 автор: Andchir   (06.11.2007 в 16:25)   письмо автору
 
   для: cheops   (06.11.2007 в 12:00)
 

$vozrr1 и $vozrr2 это две цифры (возраст) которые вводятся в форму поиска. Например, нужно найти "от 20 до 40 лет", а в базе только дата рождения.

   
 
 автор: morkovkin   (06.11.2007 в 17:14)   письмо автору
 
   для: Andchir   (06.11.2007 в 16:25)
 

Ой, туплю :)

   
 
 автор: cheops   (07.11.2007 в 13:07)   письмо автору
 
   для: Andchir   (06.11.2007 в 16:25)
 

Тогда лучше воспользоваться следующим запросом
SELECT * FROM table 
WHERE data_rojd BETWEEN NOW - INTERVAL $vozr_date1 YEAR AND NOW() - INTERVAL $vozr_date2 YEAR

   
 
 автор: Andchir   (07.11.2007 в 16:00)   письмо автору
 
   для: cheops   (07.11.2007 в 13:07)
 

Большое спасибо!!!

   
Rambler's Top100
вверх

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