2016-09-18 67 views
0

假设我在MySQL数据库中有一个名为'Users'的表,并且该表有两列,分别称为'用户名'和'密码'。有一次,我想获取所有的用户名,而不需要密码。我所做的是:获取一列的所有条目

$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。

任何想法?谢谢。

+0

查询没有任何问题。 'mysql_fetch_array'一次返回一行,你需要迭代它。 – algrebe

+0

每次在_meow_代码中使用[mysql_'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) 数据库扩展代码 ** [一只小猫被勒死在世界某个地方](http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg)**它被弃用,并且已经存在了很多年,并且已经消失了永远在PHP7中。 如果您只是学习PHP,请花些精力学习'PDO'或'mysqli'数据库扩展。 [从这里开始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

回答

1

看到这里这个声明,

$result = mysql_fetch_array($query); 

你从结果集只读取一行。遍历结果使用set 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