Posiadam dwie tabele:
pokoj -> id | max_liczba_osob | nazwa | status
rezerwacja -> id | id_pokoju | data_od | data_do | klient | status
Klient chcąc zarezerwować pokój najpierw wybiera zakres czasu jaki chciałby spędzić w hotelu i ile będzie osób.
Potem skrypt ma wyświetlić pokoje dostępne w tym terminie i dla podanej ilości osób.
Jak napisać zapytanie SQL które sprawdzi wszystkie rezerwacje dotyczące danego pokoju i czy aktualny zakres dat nie koliduje z którąś wcześniejszą rezerwacją?
Mam wrażenie, że rozwiązanie jest dziecinnie proste ale nic nie mogę wymyślić...
Rozwiązałem problem.
$db->query("SELECT p.id FROM pokoj p WHERE p.osob>=".$_SESSION['osob']." AND p.id NOT IN (SELECT r.id_pokoj FROM rezerwacja r WHERE p.id=r.id_pokoj AND data_od BETWEEN '".$_SESSION['data_od']."' AND '".$_SESSION['data_do']."') AND p.id NOT IN (SELECT r.id_pokoj FROM rezerwacja r WHERE p.id=r.id_pokoj AND data_do BETWEEN '".$_SESSION['data_od']."' AND '".$_SESSION['data_do']."') AND p.id NOT IN (SELECT r.id_pokoj FROM rezerwacja r WHERE p.id=r.id_pokoj AND data_od <= '".$_SESSION['data_od']."' AND data_do >= '".$_SESSION['data_od']."') ");
Pozdrawaim.