我是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
答案 0 :(得分:4)
我有同样的问题,我两次跟随代码
mysql_fetch_array($result)
显示更多代码 - 在
之前会发生什么答案 1 :(得分:3)
首先尝试mysql_num_rows返回多少行。 如果“0”然后无法从您的mysql中获取任何记录并检查您的SQL查询。如果返回no行,则尝试下面的代码:
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. "<br>";
}
} else {
echo "0 results";
}
享受编码。
答案 2 :(得分:0)
那是因为当它为你的MySQL查询创建数组时,它会改变我的相同值“group_1” 尝试将mysqli_fetch_array转换为mysqli_fetch_assoc而不是
答案 3 :(得分:0)
$query="SELECT * FROM `groupMembers` WHERE group_id = '$group_id'";
这里,$ group_id不能放在''之间;
答案 4 :(得分:0)
使用获取数据的$results->fetch_assoc();
<?php
// your database connection
if ($results->num_rows > 0) {
while ($row = $results->fetch_assoc()) {
echo 'Member Id:' . $row["member_id"] . '<br>';
}
} else {
echo " No Result";
}
?>