|
|
|
| есть таблица в БД след вида:
------------------------------------------------------------------------------------
| id | marka | descr | all_descr | Date | Time |
------------------------------------------------------------------------------------
|
Мне нужен запрос, с помощью которого можно было бы вытащить из БД события из поля descr, отфильтрованные по полю marka по Date, и по Time, то есть чтобы выводились только те события, которые еще не прошли. составил след. запрос, но не пойму как его изменить чтобы он выдавал мне еще и отфильтрованные по полю marka данные, помогите дельным советом.
<?php
$curdate=date("Y-m-d");
$curtime=date("H:i");
$dt_elements = explode('-',$curdate);
$tm_elements = explode(':',$curtime);
$timestamp = mktime($tm_elements[0]-4,$tm_elements[1],0,$dt_elements[1],$dt_elements[2],$dt_elements[0]);
$curtime=strftime('%H:%M:%S',$timestamp);
$curdate=strftime('%Y-%m-%d',$timestamp);
$auto_marks = 'bmw'; // тут хранится заранее известная марка, по которой и нужна фильтрация.
$query = "SELECT * FROM auto WHERE Date Like('%$curdate%') AND Time > '$curtime' Limit 11";
?>
|
и сразу такой вопрос, что если мне затем нужно будет вывести след. конструкцию из этой же таблицы. К примеру нужно отобразить поле descr - all_descr и чтобы все это также было отфильтровано по марке хранящейся в переменной $auto_marks = 'bmw'; | |
|
|
|
|
|
|
|
для: Softic
(28.01.2010 в 19:48)
| | уберите поля Date и Time в одно поле. Это одна сущность.
Про операцию Like - забудьте. Есть операция =
и вот эти все пляски -
$curdate=date("Y-m-d");
$curtime=date("H:i");
$dt_elements = explode('-',$curdate);
$tm_elements = explode(':',$curtime);
$timestamp = mktime($tm_elements[0]-4,$tm_elements[1],0,$dt_elements[1],$dt_elements[2],$dt_elements[0]);
$curtime=strftime('%H:%M:%S',$timestamp);
$curdate=strftime('%Y-%m-%d',$timestamp);
в чем их смысл?
Почему не написать WHERE date_time >= NOW() - INTERVAL 4 HOUR AND marka = 'bmw' ? | |
|
|
|
|
|
|
|
для: Trianon
(28.01.2010 в 20:22)
| | Trianon дело в том что мне нужно чтобы в базе значения времени и даты были разделены, всмысле в разных столбцах.
А если я добавляю к своему выше указанному запросу условие фильтрации по марке, то ничего невыводится, и ошибки тоже нет.
<?php
"SELECT * FROM auto WHERE Date Like('%$curdate%') AND Time > '$curtime' AND marka= 'BMW' Limit 11";
?>
|
| |
|
|
|
|
|
|
|
для: Softic
(29.01.2010 в 01:52)
| | > дело в том что мне нужно чтобы в базе значения времени и даты были разделены, всмысле в разных столбцах.
И Вы можете привести аргумент в пользу того, что Вам это нужно?
Я подобный придумывал минут пять.
>А если я добавляю к своему выше указанному запросу условие фильтрации по марке, то ничего невыводится, и ошибки тоже нет.
>
>
>"SELECT * FROM auto WHERE Date Like('%$curdate%') AND Time > '$curtime' AND marka= 'BMW' Limit 11";
>?>
Вы не убрали LIKE.
Смысла дальше продолжать разговор нет. | |
|
|
|