在PHP MsSQL中检查可用性和房间预订

在PHP MsSQL中检查可用性和房间预订,php,mysql,Php,Mysql,下面是我的SQL代码 $find=mysqli_query($dbconn," SELECT * FROM room WHERE room_no NOT IN (SELECT room_no FROM reservation WHERE check_in<='$check_out' AND check_out>='$check_in'); 我也尝试过这个sql代码。但同样的结果 $find=mysqli_query($dbc

下面是我的SQL代码

$find=mysqli_query($dbconn,"
SELECT *
  FROM room 
 WHERE room_no NOT IN 
   (SELECT room_no 
    FROM reservation 
   WHERE check_in<='$check_out' 
      AND check_out>='$check_in');
我也尝试过这个sql代码。但同样的结果

$find=mysqli_query($dbconn,"SELECT * FROM room WHERE room_no NOT IN (SELECT room_no FROM reservation WHERE(check_out>='$check_in' AND check_in<='$check_out')OR(check_out<='$check_in' AND check_in>='$check_out'))");

如果您想允许在同一天签出和签入,您只需允许范围满足;更改。

您能否提供您的房间和预订表的示例数据,以及$check\u out和$check\u in的值?您好。谢谢你的回答。我已经编辑了这个问题。所以你没有考虑预订表中的时间?我认为您的签入和签出字段类型为DATEYes。是约会。如何添加签入时间和签出时间并进行检查?将您的签入和签出字段类型设置为datetime或timestamp,以便您可以将时间与日期一起存储。所以首先要这样做
$find=mysqli_query($dbconn,"SELECT * FROM room WHERE room_no NOT IN (SELECT room_no FROM reservation WHERE(check_out>='$check_in' AND check_in<='$check_out')OR(check_out<='$check_in' AND check_in>='$check_out'))");