У меня следующая проблема: я выбираю комнаты из MySQL базы данных. Я просто хочу иметь 5 на одной странице, поэтому ограничение равно 5. Но у меня также есть таблица доступности, где перечислены заблокированные комнаты. Должны быть показаны только свободные номера.
Таблица доступности выглядит следующим образом. Таким образом, для каждой комнаты может быть более одной записи:
id room_id datetime_start datetime_end
Поэтому я сделал следующее, чтобы на одной странице было только 5 ДОСТУПНЫХ комнат. Проблема: если, например, за это время забронированы только две комнаты, это показывает мне только 3 результата, потому что доступность проверяется в l oop.
Вкратце, это мой код. Сначала я получаю номера:
"SELECT id, name FROM room WHERE conditions X Y Z LIMIT 5"
while ($stmt -> fetch()) {
...
}
В это время, пока l oop, у меня есть еще одно утверждение для проверки доступности:
"SELECT id FROM availability WHERE room_id = ? AND ((datetime_start BETWEEN ? and ?) OR (datetime_end BETWEEN ? and ?))"
Если есть результат, я пропускаю текущий в то время как l oop с "continue";
Итак, еще раз вкратце проблема: как я могу получить 5 результатов на одной странице, даже если я пропущу несколько результатов из-за отсутствия доступа?
Спасибо за любую подсказку, я не могу найти решение самостоятельно.