假设我的MySQL数据库中有一个名为“Users”的表,该表有两列名为“Username”和“Password”。有一次,我想获得所有用户名,没有密码。我做的是:
$query = mysql_query("SELECT Username FROM Users");
$result = mysql_fetch_array($query);
foreach($result as $r){
echo $r;
}
现在,我的Users表中只有两个条目,假设它们只是'User1'和'User2'。上面的代码,而不是显示他们两个,只显示第一个用户。我无法理解为什么会发生这种情况或如何解决它。我也尝试在最后添加WHERE 1
来改变查询,但我得到了相同的结果。
另一方面,当我在PhpMyAdmin中运行此查询时,它返回User1和User2。
有什么想法吗?感谢。
答案 0 :(得分:1)
请在此处查看此声明,
$result = mysql_fetch_array($query);
您只从结果集中获取一行。使用while()
循环遍历结果集以显示所有用户名,如下所示:
$query = mysql_query("SELECT Username FROM Users");
while($result = mysql_fetch_array($query)){
echo $result['Username'] . '<br />';
}
旁注:不要使用mysql_
数据库扩展,它们在PHP 5.5.0中已弃用,并已在PHP 7.0.0中删除。请改用mysqli
或PDO
扩展程序。这是why you shouldn't use mysql_*
functions。