Php MYSql查询以查找酒店管理系统中的可用预订

Php MYSql查询以查找酒店管理系统中的可用预订,php,mysql,Php,Mysql,我正在开发一个示例项目酒店管理系统。这里我创建了两个表 tbl_室 |室友|房间号| 及 tbl_预订 |预订ID |房间ID |登记|结帐| 我创建了一个查询 我从表格中得到$indate和$outdate $sql="SELECT roomid from tbl_room where tbl_room.roomid not in (select roomid from tbl_booking where checkout>'$indate' )"; 此查询不

我正在开发一个示例项目酒店管理系统。这里我创建了两个表

tbl_室

|室友|房间号|

tbl_预订

|预订ID |房间ID |登记|结帐|

我创建了一个查询 我从表格中得到$indate和$outdate

$sql="SELECT roomid from tbl_room 
      where tbl_room.roomid not in (select roomid from tbl_booking where
      checkout>'$indate' )";

此查询不起作用。它只检查结帐日期,我无法预订上一个日期。

检查此查询,它检查给定的日期范围是否在预订表中有条目,并将其从room_master中排除


$sql=SELECT*FROM tbl_room WHERE roomid not in选择b.roomid FROM tbl_booking b WHERE b.checkout在“$checkin”和“$checkout”之间,b.checkin在“$checkin”和“$checkout”之间

检查此查询,它检查给定的日期范围是否在预订表中有条目,并将其从room_master中排除

$sql=SELECT*FROM tbl_room WHERE roomid not in选择b.roomid FROM tbl_booking b WHERE b.checkout在“$checkin”和“$checkout”之间,b.checkin在“$checkin”和“$checkout”之间

最后,这个查询成功了


最后,,此查询有效。

为什么不尝试这样检查,$indate和$outdate之间的签出位置这将帮助您了解是否在给定日期预订了房间我尝试这样做:$sql=从tbl_room where tbl_room中选择roomid not in从tbl_booking中选择roomid在$checkin和“$checkout”;它显示了当时所有预订的房间。它显示以下查询::从tbl_room中选择roomid where tbl_room.roomid not in从tbl_booking中选择roomid where checking from'2017-12-06'和'2017-12-09'之间的结帐您期望的结果是什么?我想显示在此期间未预订的房间。请找到我的答案,请确保您的php代码日期格式正确。为什么不尝试这样检查“$indate”和“$outdate”之间的签出位置这将帮助您了解是否在给定日期预订房间我尝试这样做:$sql=从tbl_room where tbl_room中选择roomid。roomid不在从tbl_booking中选择roomid在哪里签出在“$checkin”和“$checkout”之间;它显示了当时所有预订的房间。它显示以下查询::从tbl_room中选择roomid where tbl_room.roomid not in从tbl_booking中选择roomid where checking from'2017-12-06'和'2017-12-09'之间的结帐您期望的结果是什么?我想显示在此期间未预订的房间。请找到我的答案,确保您的php代码日期格式正确。
 $sql="SELECT * FROM tbl_room WHERE roomid not in (SELECT b.roomid FROM tbl_booking b 
 where(b.checkout BETWEEN '$checkin' and '$checkout') and 
 (b.checkin BETWEEN '$checkin' and '$checkout'))";