想要打印出mysqli_fetch_array的所有结果,但它会多次返回第一行

时间:2013-12-20 03:03:43

标签: php mysqli

我有一个数据库db1,其中包含表内容2个字段:table user(userID varchar(1),userName varchar(30))。

我在这个表中放了两行:(01,admin)和(02,user)

我想打印所有userName,所以我编码:

$conn=mysqli_connect("localhost","root","",db1);
if($conn)
{
    $sql="SELECT userName FROM user";
    $resul=mysqli_query($conn,$sql);
    $row=mysqli_fetch_array($result);
    $mysqli_close($conn);
    foreach($row as $a)
        {
            echo $a;
        }        
 }

但我得到的结果是     为adminadmin 不     管理用户 你能告诉我为什么,我该如何解决? 谢谢!

2 个答案:

答案 0 :(得分:4)

由于mysqli_fetch_array会返回第一行,并且您正在$row中的同一foreach循环,因此您只会从第一行$row获取数据。

你要做的是使用while循环,在这种情况下更合适:

while ($row=mysqli_fetch_array($result)) {
    print_r($row);
}

答案 1 :(得分:0)

$conn=mysqli_connect("localhost","root","",db1);
if($conn)
{
    $sql="SELECT userName FROM user";
    $result=mysqli_query($conn,$sql);
    while($row=mysqli_fetch_array($result);)
        {
            print_r($row);
        }        
    $mysqli_close($conn);
 }

试试这个..