0

我有两个字段,check_in 和 nights。

夜数包括入住日期。因此,如果客户预订了 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 年 1 月 30 日入住。

感谢所有帮助:)

4

4 回答 4

0

有一个很棒的站点,其中包含常见场景的 MySQL 语句列表。检查在给定时间内是否有可用房间就是其中之一:http ://www.artfulsoftware.com/infotree/queries.php#576

于 2013-01-10T14:39:08.420 回答
0

当您选择入住日期和入住的夜晚时,您可以执行以下操作(虚拟代码):

    $startDate='2013-01-26';//for example
    $to_time=date("Y-m-d", strtotime("$startDate + 4 day"));
    echo $to_time;//prints 2013-01-30
于 2013-01-10T14:39:17.477 回答
0

当您获取客户行的数据时,使用它来获取结帐日期:

$check_out = date('Y-m-d', strtotime($row['check_in'].' + '.$row['nights'].' days'));
于 2013-01-10T14:35:10.833 回答
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
于 2013-01-10T14:35:21.207 回答