我正在尝试创建一个酒店房间预订应用程序....我创建了两个表
由roomno(PK)、房型、房价组成的房表
由房号(FK)、房间类型、入住日期和退房日期组成的空房表
到目前为止,我创建的 PHP 代码允许我检查给定日期特定类型房间的可用性......
$type = $_POST['pincode'];
$cin = $_POST['cin'];
$cout = $_POST['cout'];
$sql="select * from avalability where type = '$type' and cout>='$cin' and cin<='$cout'";
$res=mysqli_query($con,$sql);
$check=mysqli_fetch_array($res);
if(isset($check))
{
echo "rooms not available";
}
else
{
echo "rooms available";
$insert="insert into login.avalability(type,cin,cout) values('$type','$cin','$cout')";
mysqli_query($con,$insert);
}
mysqli_close($con);
?>
现在我的问题是:假设我的房间表上有 5 个单人间,其中一个单人间已被预订为 3 月 23 日至 3 月 27 日,这使得其他四个房间免费......
但是我提供的代码不适用于这个问题...任何人都可以给我正确的查询以正确检查房间可用性吗?
最佳答案
我认为您的可用性表并不是真正的可用性,而是预订。该表中数据的生命周期不清楚,但您的查询似乎没有在没有 cin 或 cout 的地方进行。
$sql="select * from avalability where type = '$type' and cout>='$cin' and cin<='$cout'"
应该是这样的
$sql="SELECT * FROM avalability WHERE type = '$type' AND ((cout>='$cin' AND cin<='$cout'") OR (cout='' AND cin=''))
关于php - 如何提供合适的查询来检查房间可用性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35777963/