PHP 在 while fetch 循环内查询

标签 php mysql sql pdo while-loop

我想知道是否可以在 while 循环内运行查询,该循环用于显示 SQL 表的内容。

如果我还不够清楚,这是代码:

$sql="SELECT * FROM hotels WHERE rooms>0";
                        $req=$db->query($sql);

                        while($row=$req->fetch()){
                           //The second query to check how many place is left
                            $req2=$db->query('SELECT COUNT(*) FROM people WHERE idhotels='.$row["idhotels"].';');
                            echo "hey".$req2;
                            $left_rooms= $row["rooms"] -$req2;
                            echo '<option value="'.$row["idhotels"].'">'.$row["name_hotel"].' ('.$left_rooms.' rooms left)</option>';

                        }

我在这里想做的是显示酒店列表以及剩余房间数。问题是我必须在显示剩余房间数之前计算已占用的房间数,因此是第二个请求。

我的代码显然不起作用,但我不明白为什么。 有人可以帮助我吗?

非常感谢!

最佳答案

为什么不使用联接和分组依据,这样您就只有一个查询?

$sql="SELECT h.idhotels,h.name_hotel,count(*) FROM hotels h inner join people p on h.idhotels = p.idhotels WHERE h.rooms>0 group by h.idhotels,h.name";
while($row=$req->fetch()){
    // Here do whatever you want with each row
}

关于PHP 在 while fetch 循环内查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41692379/

相关文章:

sql - 在单个 SQL Server 实例中使用多个数据库排序规则会出现哪些问题?

sql - 选择相关表中没有值记录的所有行

php - 使用 PHP 查询 MySQL 但数据库列有 $

php - 图像保留在我的数据库中但不显示在前端

php - 无法在服务器上解析常量

mysql - SQL 连接具有两种类型的元素表

mysql - 获得最高分和胜利次数

javascript - 使用 javascript 从共享 iCloud 获取数据

php - MySQL while循环查询在其他while循环查询中

php - 未处理为订单表 html 输入表单创建插入语句