我想知道是否可以在 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/