【问题标题】:How to provide a suitable query to check room availability如何提供合适的查询来检查房间可用性
【发布时间】:2016-03-03 16:40:59
【问题描述】:

我正在尝试创建一个酒店房间预订应用程序......我创建了两个表

  • 由roomno(PK)、房型和房价组成的房间表

  • 由roomno(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 日的一间单人间已被预订,这使得其他四个房间免费......

但是我给出的代码不适用于这个问题...谁能给我正确的查询以正确检查房间可用性?

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    我认为您的可用性表并不是真正的可用性,而是预订。该表中数据的生命周期尚不清楚,但您的查询似乎在没有 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=''))
    

    【讨论】:

    • 好的,预订表……我的查询可以很好地检查所有内容……我的问题是我是否有 5 间单人间,其中一间已在某个日期预订,而另外 4 间是免费的。 . 当一个人在同一日期搜索单人间时,我的应用程序应该能够向我显示可用性......我该怎么做这是我的问题??
    • 您能否更新您的问题以实际包含您要进行查询时每个表中的数据?
    猜你喜欢
    • 2016-08-12
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多