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

这是我的查询

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日期之间可用的房间

最佳答案

您可以改用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


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

关于php - 查询两个日期之间的酒店预订中的可用房间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57158907/

10-14 01:32