MySQL错误:查询未提供正确的数据

时间:2015-11-03 13:06:55

标签: php mysql

我执行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 -

有人可以解释发生了什么

2 个答案:

答案 0 :(得分:1)

您正在获取多行。

因此,您需要遍历结果集而不是仅提取一次。

更正后的代码:

$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

答案 1 :(得分:0)

试试这个

$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++;
}

您正在循环$ i而不是循环$ row_rooms。