我对php很陌生,但我使用了while循环,而且它起了作用。但在这种情况下,我不知道为什么它不起作用。
我使用下面的查询从mysql数据库中获取数据。
$query="SELECT * FROM `groupMembers` WHERE group_id = '$group_id'";
if ($result = mysql_query($query)) {
# code...
echo mysql_num_rows($result);
}
它打印2行为行数。
,但问题在以下while循环中:-
while ($data = mysql_fetch_array($result)) {
# code...
echo $data['member_id'];
}
我只打印了一个成员的身份证。(第二个== member_2)
上面的查询在mysql中运行时返回2行:-
member_id | group_id
----------|----------
member_1 | group_1
member_2 | group_1
发布于 2017-07-20 22:20:02
我也有同样的问题,我打了两次下面的代码
mysql_fetch_array($result)
显示更多代码-之前发生了什么?
发布于 2017-07-20 22:18:18
首先,在返回多少行时尝试mysql_num_rows。如果"0“,则无法从mysql获取任何记录并检查sql查询。如果返回no of行,那么在下面的代码中尝试:
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. "<br>";
}
} else {
echo "0 results";
}
享受编码吧。
发布于 2017-07-20 22:14:09
这是因为当它为您的MySQL查询创建数组时,它将使用相同的值"group_1“将我更改为”group_1“,尝试将mysqli_fetch_array转换为mysqli_fetch_assoc。
https://stackoverflow.com/questions/45230186
复制相似问题