[英]Hotel room booking/reservation
我正在為一家小旅館預訂/預訂系統。 我對PHP相當滿意,但對SQL卻不太滿意...我做了一個表格,您可以在其中輸入您的信息,房間數量,並使用日歷選擇到達日期和退房日期。
現在一切都進行得很好,直到我到達必須檢查哪些房間可用的地步,這讓我頭疼。 您可以預訂10間客房。
我目前在MySQL中有一張表,用於存儲信息,日期,預訂ID和房間ID /編號。
您將如何使用SQL來檢查哪些房間可用和不可用?
它看起來像什么
"SELECT * FROM bookings WHERE checkinDate >= '$formCheckin'
AND checkoutDate <= '$formCheckout' "
然后獲取roomID並進行計數?
任何幫助都非常感謝!
如果您想知道一段時間內是否有空房間,則邏輯如下:
SELECT r.*
FROM rooms r
WHERE NOT EXISTS (SELECT 1
FROM bookings b
WHERE b.roomid = r.roomid AND
b.checkinDate <= $formCheckOut AND
b.checkoutDate >= '$formCheckIn
);
我不確定這兩個是否都需要相等比較。 邏輯是,如果沒有預訂在結帳日期之前開始且在結帳日期之后結束的預訂,則該房間可用。
但是,對於十個房間,我建議您每天僅保留每個房間的一張桌子,比如說未來十年(每年再增加一次)。 這樣的表不是很大,可能更容易理解如何使用它。 另外,您可以處理一些事情,例如一對夫婦預訂房間一周,但前三天只有一個人在房間里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.