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


MySQL Error: query not giving correct data

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

像这样尝试

$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。