我执行 mySQL 查询以获取一些数据,然后(出于调试目的)将其打印出来。在此特定示例中,有 5 行数据,数据库表中的每个 room_id 都有一个值。然而,打印输出仅显示第一行的 room_id。
$query_rooms = "SELECT room_id FROM lh_rooms WHERE hid = '$hid'";
$rooms = mysql_query($query_rooms, $MySQL) or die(mysql_error());
$row_rooms = mysql_fetch_assoc($rooms);
$numrows = mysql_num_rows($rooms);
$i = 0;
while ($i < $numrows) {
$room_id=$row_rooms['room_id'][$i];
echo $i." - ".$room_id."<br><br>";
++$i;
}
0 - 2
1 -
2 -
3 -
4 -
谁能解释一下发生了什么
最佳答案
您正在获取多行。
因此,您需要循环遍历结果集,而不是只获取一次。
更正后的代码:
$query_rooms = "SELECT room_id FROM lh_rooms WHERE hid = '$hid'";
$rooms = mysql_query($query_rooms, $MySQL) or die(mysql_error());
$i=0;
while($row_rooms = mysql_fetch_assoc($rooms)) {
$room_id=$row_rooms['room_id'];
echo $i." - ".$room_id."<br><br>";
++$i;
}
注意:切勿使用 mysql_,它们已被弃用,并将在即将发布的版本中删除。请改用 mysqli_ 或 PDO。
关于php - MySQL 错误 : query not giving correct data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33499929/