我有一个包含四个条目的数据库,我只是想读取数据库中的所有条目。但无论我如何尝试,第一个条目都不会显示。
从用户数据中选择*
的输出:
+-----------+-----------+ | 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/