![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam.
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.
Pozdrawaim. -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 1 Dołączył: 4.06.2011 Ostrzeżenie: (0%) ![]() ![]() |
SELECT * FROM baza WHERE data='data_z_zapytania_klienta'
Jeśli zwróci więcej niż zero wierszy to znaczy że data jest zajęta. Możesz to rozbudować. Uwaga! $result = mysql_query('SELECT * FROM baza WHERE data='data_z_zapytania_klienta'', $connect); if(!$result){ echo 'data wolna'; } else{ echo 'data zajęta'; } Zawsze zwróci zajęta, ponieważ SELECT nigdy nie zwraca FALSE. Trzeba to sprawdzić za pomocą mysql_num_rows($result) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
A po kiego grzyba za każdym razem liczyć?
Dobrą praktyką jest wykorzystwanie mysql_fetch_array w takim warunku. Sprawdzenie result zwraca, czy wykonanie zapytania się (nie) powiodło. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 348 Pomógł: 26 Dołączył: 8.10.2008 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Zdaje mi się, że Panowie nie zrozumieli zagadnienia. Chodzi o przedział(y) z zakresu dat, dla wszystkich pokoi przy czym dla każdego pokoju może być wiele rezerwacji, a nie o jeden dzień.
Tak wygląda zapytanie po małych przeróbkach:
i działa dobrze. Dziękuję za zainteresowanie. Ten post edytował Adi32 29.06.2011, 14:57:50 -------------------- Wolałem języki z rodziny C ale poszedłem na łatwizne...
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 04:25 |