sundance2001
Новичок
Хитрая задача
Уважаемые коллеги, вновь прошу вашей помощи. Умоляю, помогите, а то уже несколько часов парюсь с этой задачей. Теперь о ней.
В MySQL БД есть два столбца - один со временем начала, а другой со временем конца работы заведений. В форме запроса посредством двух ("с" и "до") ComboBox'ов гость выбирает время, в которое хотел бы посетить заведение. Результатом должен быть список заведений, открытых соответственно критерию поиска, причём допускается, что один из критериев поиска может отсутствовать (например: с 18 часов до "не важно"). Проблема начинается для тех заведений, которые заканчивают работать на следующий день, т.е. после полуночи.
Я написал вот что:
Но этот код не обрабатывает все случаи, а именно, когда "время закрытия" < "Времени открытия".
Многим наверняка приходилось сталкиваться с подобной проблемой. Поделитесь, как вы ее решили?
Уважаемые коллеги, вновь прошу вашей помощи. Умоляю, помогите, а то уже несколько часов парюсь с этой задачей. Теперь о ней.
В MySQL БД есть два столбца - один со временем начала, а другой со временем конца работы заведений. В форме запроса посредством двух ("с" и "до") ComboBox'ов гость выбирает время, в которое хотел бы посетить заведение. Результатом должен быть список заведений, открытых соответственно критерию поиска, причём допускается, что один из критериев поиска может отсутствовать (например: с 18 часов до "не важно"). Проблема начинается для тех заведений, которые заканчивают работать на следующий день, т.е. после полуночи.
Я написал вот что:
PHP:
//Для заведений, не работающих по ночам
if ($_POST['open_to'] != 'none') {
if ($_POST['open_from'] == 'none') {
$terms .= " AND (places.open_from < ".$_POST['open_to'].") AND (places.open_to >= ".$_POST['open_to'].")";
} else {
$terms .= " AND (places.open_to >= ".$_POST['open_to'].")";
}
}
if ($_POST['open_from'] != 'none') {
if ($_POST['open_to'] == 'none') {
$terms .= " AND (places.open_from <= ".$_POST['open_from'].") AND (places.open_to > ".$_POST['open_from'].")";
} else {
$terms .= " AND (places.open_from <= ".$_POST['open_from'].")";
}
}
Многим наверняка приходилось сталкиваться с подобной проблемой. Поделитесь, как вы ее решили?