Ограничение SQL приводит к PHP до 5, но только для доступных записей (есть таблица с доступностью) - PullRequest
0 голосов
/ 03 мая 2020

У меня следующая проблема: я выбираю комнаты из 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 результатов на одной странице, даже если я пропущу несколько результатов из-за отсутствия доступа?

Спасибо за любую подсказку, я не могу найти решение самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...