【问题标题】:Get all entries of one column获取一列的所有条目
【发布时间】:2016-09-18 13:47:14
【问题描述】:

假设我的 MySQL 数据库中有一个名为“Users”的表,该表有两列名为“Username”和“Password”。有一次,我想获取所有用户名,而不需要密码。我所做的是:

$query = mysql_query("SELECT Username FROM Users");
$result = mysql_fetch_array($query);
foreach($result as $r){
     echo $r;
}

现在,我的用户表中只有两个条目,假设它们只是“用户 1”和“用户 2”。上面的代码并没有显示他们两个,而是显示了第一个用户。我不明白为什么会发生这种情况或如何解决它。我还尝试通过在末尾添加WHERE 1 来更改查询,但我得到了相同的结果。

另一方面,当我在 PhpMyAdmin 中运行此查询时,它同时返回 User1 和 User2。

有什么想法吗?谢谢。

【问题讨论】:

  • 查询没有问题。 mysql_fetch_array 一次返回一行,您需要对其进行迭代。
  • 每次您在 meow 代码 a Kitten is strangled somewhere in the world 中使用 the mysql_ 数据库扩展时,它都会被弃用,并且已经存在多年并且永远消失了在 PHP7 中。如果您只是学习 PHP,请花精力学习 PDOmysqli 数据库扩展。 Start here

标签: php mysql


【解决方案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 中被删除。请改用 mysqliPDO 扩展名。这是why you shouldn't use mysql_* functions

【讨论】:

    猜你喜欢
    • 2015-06-05
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2011-01-26
    相关资源
    最近更新 更多