php - 无法使用 PHP 从 MySQL 数据库提取所有数据

标签 php mysql sql

我有一个包含四个条目的数据库,我只是想读取数据库中的所有条目。但无论我如何尝试,第一个条目都不会显示。

从用户数据中选择*的输出:

+-----------+-----------+
| username  | password  |
+-----------+-----------+
| admin     | admin     |
| arush     | arush     |
| root      | root      |
| superuser | superuser |
+-----------+-----------+

Output from my php code :

arush arush
root root
superuser superuser
SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY...This Completed

PHP Code :

$query = mysqli_query($dbc,"SELECT * FROM userdata")
        or die(mysql_error()); 
        $row = mysqli_fetch_array($query);
        while($row = mysqli_fetch_array($query)) 
        {
            echo $row['username'] . " " . $row['password'];
            echo "\n";
        }
        if(!empty($row['username']) and !empty($row['password'])) 
        { 
            $_SESSION['username'] = $row['password']; 
            echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 
        } 
        else 
        { 
            echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
        }

正如我所想,因为第一行未显示或空白 !empty($row['username']) 和 !empty($row['password']) 条件检查也失败了。

p.s:抱歉,如果这似乎是一个毫无意义的问题,我对 PHP 完全陌生,无法找到任何相关的类似问题。

最佳答案

您连续两次调用$row = mysqli_fetch_array(),在打印之前覆盖第一条记录。这就是为什么“admin”永远不会出现。

    $row = mysqli_fetch_array($query); // this puts the admin record in $row
    while($row = mysqli_fetch_array($query)) // this overwrites $row with the next record (root)

您不需要此代码段中的第一行,因为它会在输入 while 循环体之前执行和检查。

关于php - 无法使用 PHP 从 MySQL 数据库提取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25954368/

相关文章:

sql - 识别表中逻辑重复的行

php - 在三个表上使用 JOIN - MySQL

php - 我怎样才能加快 Composer 的安装速度?

php - 如何使用单个查询通过 PHP 创建多个 MySQL 表?

MySQL REPLACE 在 UPDATE 中无法正常工作

SQL 查询使用多列的顶级条目

PHP MySQL 小查询超时,必须将限制设置为 10

php - Facebook API : count attendees for event (limit problem)

mysql - 设计 mysql 数据库技巧和技术,以及一些 mysql 问题?

php - 如何使用由日期和用户名分隔的 while 循环添加列的不同值(行)