2013-07-30 2 views
0

В следующем запросе отображаются name событий, когда даты start и $selected - это то же самое. формат - 2013-07-30 после «удаления» времени.Как проверить, находится ли выбранная дата между началом и концом?

Однако, я хочу, чтобы использовать end поле также, и проверить, если $selected дата между start и end и не только тогда, когда она равна start, как сейчас.

Пример: start: 2013-07-28, end: 2013-07-31, $selected = 2013-07-30

$selected между start и end, так что это нормально, чтобы отобразить имя (и другие Информация).

$sh = $db->prepare('SELECT * FROM events WHERE DATE(`start`) = DATE(:start)'); 
$sh->bindValue(":start", $selected); 
$sh->execute(); 

while($row1 = $sh->fetch(PDO::FETCH_ASSOC)) { 
echo $row1['name']; 
} 
+4

Что о '' МЕЖДУ –

+0

@PrasanthBendra Я знаю, что между ними, однако я не знаю, как реализовать его на PDO – EnexoOnoma

ответ

4

вы можете использовать BETWEEN или: < end time и > start time. попробуйте это

SELECT * FROM events WHERE DATE(:start) Between DATE(`start`) and DATE(`end`) 
+0

Прекрасно работает, спасибо. Но последнее, что я добавил, и «city' == 1 в конце вашего вопроса, чтобы показать результаты, только форма города с номером 1, без везения. Я что-то упускаю ? – EnexoOnoma

+0

вы приветствуете .:).yes вы должны использовать его так, как 'AND city = 1' –