查询两个日期之间酒店预订中的可用房间

时间:2019-07-23 07:31:51

标签: php mysql

我只需要在酒店预订系统中选择可用的房间

这是我的查询

echo $str = $_POST['start'];
echo $en = $_POST['end'];
$sql = "SELECT * 
        FROM chambre 
        WHERE id NOT IN (SELECT id_chambre 
                         FROM reservation_client
                         where start < $en
                            or end >=$str)";

但是查询给了我不在表reservation_client中的房间,而不是在$str$en日期之间可用的房间

1 个答案:

答案 0 :(得分:1)

您可以改用LEFT JOIN,并查看保留位置NULL(这意味着没有左连接)。

SELECT c.* 
FROM chambre AS c
LEFT JOIN reservation_client AS rc
  ON c.id = rc.id_chambre AND rc.start < '$en' AND rc.end >= '$str'
WHERE rc.id_chambre IS NULL

尽管您应该使用准备好的语句,而是通过占位符绑定值。