我有两个字段,check_in和night。
夜晚包含check_in日期。因此,如果客户预订1晚,他会在第二天检查,然后可以预订房间(除非已经由其他人预订)。
以下是我桌子中几条记录的示例
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-01-26进入房间,他们将入住4晚。这意味着在此期间房间将无法预订。
那我该怎么检查房间是否可用?
该房间仅适用于2013-01-30的check_in。
感谢所有帮助:)
答案 0 :(得分:0)
获取客户行的数据时,请使用此数据来获取结帐日期:
$check_out = date('Y-m-d', strtotime($row['check_in'].' + '.$row['nights'].' days'));
答案 1 :(得分: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
答案 2 :(得分:0)
有一个很棒的网站,其中包含常见方案的MySQL语句列表。检查某个房间是否在特定时间段内可用是其中之一:http://www.artfulsoftware.com/infotree/queries.php#576
答案 3 :(得分:0)
当您选择入住日期和夜晚时,您可以执行以下操作(虚拟代码):
$startDate='2013-01-26';//for example
$to_time=date("Y-m-d", strtotime("$startDate + 4 day"));
echo $to_time;//prints 2013-01-30