【问题标题】:Php/mysql check number of booked roomsphp/mysql 查询预定房间数
【发布时间】:2014-07-22 21:39:21
【问题描述】:

关于如何检查房间是否已预订,我遇到了一个小问题。

所以基本上我有一个如下所示的表格

接听

  1. accomm_id
  2. 签入[存储为时间戳]
  3. 结帐[存储为时间戳]

到目前为止,如果用户输入了签入和签出日期,这两个日期都将转换为时间戳。该部分已完成。

所以我没有弄清楚以下内容:

  • 搜索accomm 表以使用用户输入的签入和签出参数。
  • 然后返回预订房间的数量。

请在这方面协助或指导我。谢谢。

$booked_rooms = 0;
while($accommodation_package = mysql_fetch_array($query)) {

    // $this->checkin, $this->checkout are values fed by the user
    // $accommodation_package['checkin/out'] are the values in the database
    if($this->checkin >= $accommodation_package['checkin'] && $this->checkout <= $accommodation_package['checkout']) {
        $booked_rooms +=1;
    }
}
echo $booked_rooms;

好吧,我认为上述方法可行,但当客户的入住和退房日期在不同月份时,它不起作用。

【问题讨论】:

  • 请显示您遇到问题的当前代码。
  • @Jono20201 。我已经编辑了我的帖子以包含它
  • 你目前的 SQL 查询是什么?
  • "SELECT a.* FROM accomm` a WHERE a.client_id IN (SELECT c.client_id FROM client_details c WHERE c.booked = 1)";`

标签: php mysql


【解决方案1】:

假设您以“d-m-Y”格式存储了我们的入住和退房日期>您可以执行以下 SQL 语句:

SELECT COUNT(acomm_id) FROM Accomm WHERE checkin <= yourDateString AND checkout => yourDateString

希望这会有所帮助。

【讨论】:

  • 我已将它们存储为时间戳
【解决方案2】:

试试这个:

<?php
$currentTime = date('Y-m-d H:i:s');

$sql = "SELECT COUNT(accomm_id)
        FROM accom
        WHERE checkin <= $currentTime
        AND checkout >= $currentTime";
$query = mysqli_query($sql);
// code to get the details.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    相关资源
    最近更新 更多