我在使用我必須建立的預訂系統(PHP/Mysql)驗證日期時遇到了麻煩。 我之前發過類似的問題Reservation system dates但是有些變化。預約系統租用一天的區塊
我遇到的問題; 我們在辦公室有一間工作室/會議室。這是有限的時間租金。用戶選擇什麼日子,什麼時間以及他要租用房間多少小時。
預訂一步一步:
1-用戶選擇他想要租工作室的月份。 2-用戶選擇他想租賃演播室的那一天。 (這裏我卡住了) 3-用戶選擇他希望得到密鑰的時間。
時間上,關鍵是應收款:
00:00:00 - 06:00:00
06:00:00 - 12:00:00
12:00:00 - 18:00:00
18:00:00 - 24:00:00
這些時間的時候,在用戶將收到大門的鑰匙。
4-用戶選擇他希望租用工作室的小時數。
問題: 我能夠檢查工作室租用的日期,但不是確切的時間。 我知道如何在PHP中檢查時間。但是,例如,
用戶1於2012年4月27日12:00:00至18小時後出租演播室。 用戶2想要在2012年4月26日18:00:00至12小時後租用工作室。 用戶3想在4月28日租用工作室。
我如何能夠檢查用戶2是否可以租到工作室,直到最大27日4月12:00:00。 如何檢查用戶3是否可以在28日租用工作室並確保在06:00之後可用。
數據庫:
id int(11)
user_id int(11)
rental_name varchar(255)
key_receive_time varchar(255)
start_date int(11)
end_date int(11)
total_hours int(11)
我一直在這2天連續現在,仍然無法破解它。我認爲解決方案很簡單,但我可能在錯誤的方向搜索。
在此先感謝。
EDIT例如queryie:
SELECT * FROM reservations
WHERE (start_date >= " . $start_block_1 . " AND end_date <= " . $end_block_1 . ")
OR (start_date >= " . $end_block_1 . " AND end_date <= " . $start_block_1 . ")
的$start_block_1
和$end_block_1
表示時間戳00:00:00 - 一天的六點00分00秒塊。
我執行此查詢4次,因爲在用戶可以拾取密鑰的當天有4個塊。
您的查詢如何查看以及它們出錯的位置? – 2012-04-26 08:34:37
實施例的查詢:( 「$ start_block_1」「。$ end_block_1 」起始日期> = \t \t \t \t日期和結束日期<=)'SELECT * FROM保留WHERE \t \t \t OR(起始 \t \t \t> =「 。。$ end_block_1 「 \t \t \t \t日期和結束日期<=」 $ start_block_1「)'的$ start_block_1和$ end_block_1代表** 00:00:00 - 06:00: – 2012-04-26 08:37:56
一天的00 **塊你是否在'start_date'和'end_date'列中存儲了日期和時間?這是一個簡單的查詢。 – 2012-04-26 08:41:47