使用 MySQL 查询创建值数组后,我需要检查它们是否都至少等于给定值。这是为了检查酒店的房间可用性。
首先我执行 MySQL 查询:
foreach( $datearray as $value ) {
$query_avail = "SELECT cupo, ex_cupo.room_id FROM ex_cupo JOIN ex_rooms ON ex_cupo.room_id=ex_rooms.room_id AND ex_rooms.room_id = '$room_id' AND dt = '$value'";
$avail = mysql_query($query_avail, $MySQL_extranet) or die(mysql_error());
$row_avail = mysql_fetch_assoc($avail);
$availresult[] = $row_avail['cupo'];
}
“Cupo”是给定日期的可用房间数量,因此 $availresult 将是一系列日期范围内的可用房间数量。
现在,如果有人想在这些日期预订(比方说)2 个房间,我需要确保数组中的每个值至少为 2。例如,如果范围内有 5 个日期,它们分别为 2、2 , 1, 2, 2,我需要返回 false,但是如果它们是 2, 2, 2, 2, 2 或者 2, 2, 3, 2, 2,我需要返回 true。
我该怎么做? (我希望我解释得足够好。)
显然选择2只是一个例子。它通常是一个名为 $numrooms 的变量。
最佳答案
将 WHERE cupo > 2
添加到您的 SQL 代码中。让数据库只为您提供您想要的结果,而不是遍历结果以自行检查 cupo>2。
如果您需要能够更改它,请使用参数化查询。参见 http://php.net/manual/en/security.database.sql-injection.php了解详情。
关于php - 检查数组中有多少值大于 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13981714/