2013-01-10 23 views
0

我有兩個字段,check_in和nights。預訂日期PHP/MySQL可用性範圍

晚上包含check_in日期。因此,如果客戶預訂一晚,他將在第二天check_out,然後房間將可用於預訂(除非已被其他人預訂)。

這裏是我的表內的一對夫婦的履歷的一例,

customer   room   check_in   nights 
cus1    test room  2013-01-23   2 
cus2    test room  2013-01-25   1 
cus3    test room  2013-01-26   4 

cus3已經預訂了房間,他們會檢查進入房間2013年1月26日,他們將停留4晚。這意味着在此期間房間將無法預訂。

那麼我將如何檢查房間是否可用?

房間只能在2013年1月30日check_in可用。

所有幫助表示讚賞:)

+0

你想檢查房間下次何時可用(例如,從當前日期)?或者你想檢查房間是否可以在特定的日期? –

+0

@StephenBooher我想通過一個給定的日期,如果可能的話,如果房間可用則返回true,如果房間不可用則返回false。 – verheesj

回答

0

當你爲客戶行的數據,用這個來獲得退房日期:

$check_out = date('Y-m-d', strtotime($row['check_in'].' + '.$row['nights'].' days')); 
0

這樣的事情,

SELECT room, 
     CASE WHEN 'dateHere' BETWEEN check_in AND check_out 
      THEN 'UNAVAILABLE' 
      ELSE 'AVAILABLE' 
     END Status 
FROM 
    (
     SELECT room, 
       check_in, 
       DATE_ADD(check_in, INTERVAL nights day) check_out 
     FROM booking 
) s 
+0

這差不多完美了,我忘了補充一點,我會發送一個日期和晚上要求的數量。因此,如果x日期可用於x夜晚 – verheesj

+0

你能舉個例子嗎? –

+0

(使用我提供的現有數據作爲示例)。客戶想在2013年1月21日預訂客房和check_in,他們想留4天。由於該範圍內已有預訂,因此他們無法預訂房間。 – verheesj

0

當您選擇您的入住日期並佔領了,你可以做這樣的事情(啞代碼)晚:

$startDate='2013-01-26';//for example 
    $to_time=date("Y-m-d", strtotime("$startDate + 4 day")); 
    echo $to_time;//prints 2013-01-30