我正在爲酒店預訂系統製作網站。我需要關於查詢的幫助,我正在通過後期搜索,但我沒有找到解決方案,將爲我工作。 在我的數據庫我有表預訂,與登記入住和退房日期,需要檢查時,用戶輸入登記入住和退房指定的房間查詢。這裏是我的查詢:查詢酒店預訂系統php
SELECT * FROM booking WHERE room='$room' and ((checkin>='$cIN' and checkout<='$cOUT')or(checkin<='$cIN' and checkout>='$cOUT'))
「$ CIN」和「$ COUT」從用戶在檢查輸入,並檢查了。 我的查詢在某些情況下工作,可以說例如房間預訂時間爲15/03/2017至20/03/2017,當新用戶輸入13/03/2017至17/03/2017時,則查詢不返回任何結果,並且用戶可以預訂同一個房間。因此,在這種情況下,我們在同一時間間隔內的一個房間中有2個用戶。我需要限制這種保留。提前致謝。
你正在檢查一個週期是否完全蓋過其他反之亦然 - 但當然你也需要考慮到用戶輸入的日期只有一個落入已經預訂的時間段的情況。如果您在確定正確的邏輯時遇到問題,那麼我建議您在一張紙上塗寫可能的案例 - 這應該有助於弄清楚。 – CBroe
如果在同一天不能有兩次預訂(第一位客人已預訂到今天,所以下一位客人只能從明天開始預訂),那麼您只需檢查開始日期或結束日期是否落入現有時間段(包括第一天/最後一天的平等) – CBroe
謝謝你的回答,我想我找到了解決方案,你的評論幫助我:) – marjov