PHP/MySQL中的预订日期可用范围
我有两个字段,签入和夜间 住宿包括入住日期。因此,如果客户预订了一晚,他会在第二天退房,然后房间就可以预订了(除非已经被其他人预订了) 下面是我的表中的一对记录的示例PHP/MySQL中的预订日期可用范围,php,mysql,date,between,Php,Mysql,Date,Between,我有两个字段,签入和夜间 住宿包括入住日期。因此,如果客户预订了一晚,他会在第二天退房,然后房间就可以预订了(除非已经被其他人预订了) 下面是我的表中的一对记录的示例 customer room check_in nights cus1 test room 2013-01-23 2 cus2 test room 2013-01-25
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年1月30日入住
非常感谢所有帮助:)当您获取客户行的数据时,使用此选项获取退房日期:
$check_out = date('Y-m-d', strtotime($row['check_in'].' + '.$row['nights'].' days'));
像这样的,
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
- 有一个很棒的站点,其中列出了常见场景的MySQL语句列表。检查房间在给定时间段内是否可用是其中之一:当您选择入住日期和入住夜数时,您可以执行以下操作(虚拟代码):
是否要检查该房间下一次何时可用(例如,从当前日期开始)?或者您想检查房间是否在给定日期内可用?@StephenBooher我想通过给定日期,如果可能,如果房间可用,则返回true,如果房间不可用,则返回false。这几乎是完美的,我忘了添加我将发送日期和请求的夜数。因此,如果x date可用于x数量的nightscould,请给出一个示例(使用我提供的现有数据作为示例)。客户希望在2013年1月21日预订房间并入住,他们希望入住4天。他们应该无法预订房间,因为在该范围内已有预订。您如何利用此查询创建存储过程,我没有创建存储过程的权限我不认为:(.再看看你的例子,如果有数千个预订,它看起来会返回每一行,我只希望它返回“测试室”是否可用。我有一个房间列表,比如说,1号房间、2号房间、3号房间、4号房间。我需要返回列表中在给定日期和晚上可用的房间。
$startDate='2013-01-26';//for example
$to_time=date("Y-m-d", strtotime("$startDate + 4 day"));
echo $to_time;//prints 2013-01-30