Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Sprawdzenie czy termin jest wolny
coTYkcesz
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 5.03.2015

Ostrzeżenie: (0%)
-----


Mam tabele:
REZERWACJE(id_rezerwacji, id_klienta, id_lozka, od, do, czy_zameldowal, cena, czy_zaplacil, uwagi)
LOZKA(id_lozka, numer_pokoju, cena)

Mam formularz w którym wybieram łóżko, i date OD i date DO...

Potrzebuję stworzyć zapytanie do bazy MYSQL sprawdzające czy dane łóżko jest wolne w danym przedziale czasu...

Próbowałem już różne zapytania i nic mi nie wychodzi...

CODE
SELECT * FROM `lozka` LEFT JOIN `rezerwacje` ON `id_lozka` = `id_lozka` WHERE (`$od` BETWEEN '$od' AND '$do') OR (`$do` BETWEEN '$od' AND '$do')


Jest ktoś w stanie mi pomóc?

Wykombinowałem coś takiego ale to jeszcze chyba nie to.. coś mi tu jeszcze nie pasuje :/

$zapytanie = "SELECT * FROM rezerwacje WHERE id_lozka='$id_lozka' and od BETWEEN '$od' AND '$do' OR id_lozka='$id_lozka' and do BETWEEN '$od' AND '$do';";
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
robertpiaty
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 18
Dołączył: 7.10.2007
Skąd: Pruszków

Ostrzeżenie: (0%)
-----


Ja bym sobie wyznaczył które łóżka są zajęte (tak chyba będzie łatwiej co nie znaczy że bardziej optymalnie). Łóżka zajęta to takie które rezerwacje można opisać poniższym warunkiem (dzisiaj myślenie sprawia mi ból więc trzeba sprawdzić czy ten warunek poniżej jest ok):
($dataOd <= od && $dataDo > od) OR ($dataOd < do && $dataDo >= do)

W związku z tym zapytanie by wyglądało następująco:
  1. SELECT * FROM lozka AS l LEFT JOIN rezerwacje AS r ON (r.id_lozka = l.id_lozka AND (($dataOd <= r.od && $dataDo > r.od) OR ($dataOd < r.do && $dataDo >= r.do))) WHERE r.id_rezerwacji IS NULL
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 18:09