Php 想要打印mysqli_fetch_数组的所有结果,但它多次返回第一行

Php 想要打印mysqli_fetch_数组的所有结果,但它多次返回第一行,php,mysqli,Php,Mysqli,我有一个数据库db1,其中包含表内容2个字段:表用户(userID varchar(1),userName varchar(30)) 我在这个表中放了两行:(01,admin)和(02,user) 我想打印出所有用户名,以便输入代码: $conn=mysqli_connect("localhost","root","",db1); if($conn) { $sql="SELECT userName FROM user"; $resul=mysqli_query($conn,$sq

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

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

我想打印出所有用户名,以便输入代码:

$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;
        }        
 }
但我得到的结果是 管理员 不 管理员用户 你能告诉我为什么吗?我怎样才能修好它? 谢谢

因为返回第一行,并且在
foreach
中循环相同的
$row
,所以只能从第一行
$row
获取数据

相反,您要做的是使用一个while循环,它在这种情况下更合适:

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

试试这个..

你看过文档了吗?它清楚地表明,这只返回一行。您只获取一个字段,为什么要尝试回显两个字段?并且在获取之前不要调用
mysqli\u close()
$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);
 }