Я новичок в php, mysql и всем, что есть в Интернете. У меня есть проблема, которую я подозреваю, что множественный выбор может или не может решить. Если вы не думаете, что это лучший способ что-либо сделать, будь то объявление таблицы или что-то еще, дайте мне знать, у меня есть 3 таблицы.
| ОТЕЛЬ |
- ID
- hotel_title
- название * * +1011
- Город * * 1013
- Страна
| Размещение |
- ID
- LOCATION_ID
- название
- размер
- ванная
| Unavailable_dates |
- ID
- accommodation_id
- 1041 * начать *
- конец
Таким образом, как можно заключить, несколько гостиниц могут быть перечислены в одной гостинице. Например. Полулюкс, номер люкс и т. Д.
Каждое жилье также имеет даты, в которые оно недоступно.
Я пытаюсь добиться того, чтобы, когда пользователь вводит диапазон дат пребывания, он совпадает с одной записями в "Unavailable_dates" определенного места размещения, но это место не возвращается.
Например
| Unavailable_dates |
|-id-| accommodation_id | start | end |
|-1--|-----2------------|--12/02/12--|-20/02/12--|
|-2--|-----2------------|--07/03/12--|-26/03/12--|
Чего я хотел бы добиться, так это того, что если моя дата находится в первом диапазоне записей, но не во втором, то non будет возвращено как противник возвращения второй.
Ниже приведены некоторые дополнительные сведения, которые могут помочь вам в том, что я пытаюсь донести до вас, вам не нужно читать это, если вам не нужны дополнительные сведения.
Дополнительные сведения
SELECT location.*, accommodation.*
FROM location
JOIN (accomodation, Unavailable_dates)
ON (location.id = accommodation.location_id
AND accommodation.id = unavailable_date.accommodation_id)
WHERE location.city='Birmingham'
AND 'check_in_date' NOT BETWEEN hotel_dates.start AND hotel_dates.end
AND 'check_out_date' NOT BETWEEN hotel_dates.start AND hotel_dates.end
Если моя check_in_date находится между начальной и конечной датой первой записи, а моя check_out_date находится между моей начальной и конечной датой второй записи, то ни один элемент не возвращается. Это нормально, однако, если моя дата заезда находится в пределах даты начала и окончания первых записей, но моя дата выезда не находится между моими вторыми записями, это вернет жилье как доступное.