我正在尝试制作一个预订页面,该页面接受用户的入住和退房日期以及房间号。
这是我当前的代码;它的当前功能是获取选定房间号的所有预订,并检查其所有日期范围,以查看当前预订之一与用户输入日期重叠。如果重叠,则回显错误,否则不执行任何操作。 :
$sql18 = "SELECT rid, checkin, checkout FROM bookings
WHERE rid = $rNumber"; //$rNumber is room number obtained from a dropdown list
$results18 = mysqli_query($conn, $sql18);
while ($row = mysqli_fetch_array($results18)) {
if (('$cInDate' >= $row["checkin"] && '$cInDate' < $row["checkout"]) || //$cInDate and $cOutDate are user inputs
('$cOutDate' > $row["checkin"] && '$cOutDate' <= $row["checkout"])) {
echo "invalid booking";
}
}
我测试了if语句,但没有运气就触发了错误。我仍然没有错误地通过if语句
最佳答案
为什么不只在SQL查询中使用函数之间?
您的SQL查询应如下所示
$sql18 = "SELECT
rid, checkin, checkout
FROM bookings
WHERE rid = $rNumber AND
(checkin BETWEEN $cInDate AND $cOutDate) AND
(checkout BETWEEN $cInDate AND $cOutDate)";
如果有特定时间的预订,这将返回。
避免在SQL查询中使用普通的PHP变量,否则会导致SQL注入问题。