mysqli_fetch_array()没有从数据库中获取表的第一行

时间:2014-08-05 21:27:37

标签: php mysql sql

我正在尝试学习PHP和MYSQL。我在phpmyadmin中创建了一个具有以下属性的数据库:

database name = my_database

table name = users

表格包含:

attributes (id,Name, Password, Phone Number)

我的样子的图示示例:

blah

问题是我在php中编写了一个查询,它将从表中选择所有数据并使用循环显示它。出于某种原因,无论我在users表中添加了多少数据,代码总是省略第一行数据并显示其余用户数据。根据我的代码,输出应该是每个用户名显示的ID号,但第一个用户的信息永远不会显示,其余的用户都会完美显示。有人可以帮我解决这个问题。

我的代码:

<?php

$counter=0;


 $mysqli=mysqli_connect('localhost', 'root','','my_database');
 if(mysqli_connect_errno())
 {
    echo'connection failed'; echo"<br>";
 }

else{
    echo"connection SUCCESSFUL";echo"<br>";
}

    $sq1="select * from users";
    //$sq1="SELECT `Name`, `Password` FROM `users` ORDER BY `id`";

    $res= mysqli_query($mysqli,$sq1);
    if($res)
    {
        echo"Database Query Successful";echo"<br>";

        $user_array= mysqli_fetch_array($res);
    //print_r($user_array);
    while($user_array=mysqli_fetch_assoc($res))
    {

        $user_id=$user_array["id"];
        $user_name=$user_array["Name"];
        //$user_phonenumber=$user_array["Phone Number"];

        echo'The user name is '.$user_name.' The id is '.$user_id;

    }



    }

    else
    {
        echo"Databse unsuccessful";
    }



 ?>

1 个答案:

答案 0 :(得分:2)

那是因为您在进入循环之前调用了mysqli_fetch_array,请删除以下行:

$user_array= mysqli_fetch_array($res);