虽然循环不适用于每个索引

时间:2017-07-21 06:07:04

标签: php mysql

我是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

5 个答案:

答案 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";
}
?>