PHP MySQL查询仅输出一个二元素数组

Posted

技术标签:

【中文标题】PHP MySQL查询仅输出一个二元素数组【英文标题】:PHP MySQL query outputs only a two-element array 【发布时间】:2013-03-07 07:15:34 【问题描述】:

我刚刚用 SQL 查询快速编写了一个小脚本。 现在当我去 phpmyadmin 并执行时

SELECT name FROM players WHERE online='1' ORDER BY name ASC

它输出想要的玩家(0TheMonk, Player, Veeve)

但是使用 PHP:

$query=mysql_query("SELECT name FROM players WHERE online='1' ORDER BY name ASC");
$query_array=mysql_fetch_array($query);
echo implode(',',$query_array);

它回响:0TheMonk,0TheMonk

代替:0TheMonk,Player,Veeve

它总是输出数组中的第一个玩家,两次。我究竟做错了什么? 提前致谢。

【问题讨论】:

Please, don't use mysql_* functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解 prepared statements,并使用 PDO 或 MySQLi - this article 将帮助您决定哪个。 mysql_fetch_array 只返回一行。请参阅文档:php.net/mysql_fetch_array 【参考方案1】:

使用while循环

$query=mysql_query("SELECT name FROM players WHERE online='1' ORDER BY name ASC");
while($query_array=mysql_fetch_array($query))

    echo $query_array['name'].",";

【讨论】:

谢谢,它确实有帮助,但现在我每个玩家都有两次。 0TheMonk,0TheMonkPlayer,PlayerVeeve,Veeve 那就更奇怪了O.o 非常感谢您! 【参考方案2】:

试试这个:与 Sumits 的答案几乎相同。

$res    = array();
$query=mysql_query("SELECT name FROM players WHERE online='1' ORDER BY name ASC");
while($query_array=mysql_fetch_array($query))

    $res[]   = $query_array['name'];


echo implode(",",$res);

在这种情况下,不会有多余的,

【讨论】:

以上是关于PHP MySQL查询仅输出一个二元素数组的主要内容,如果未能解决你的问题,请参考以下文章

MySQL/PHP 输出数组重复查询然后显示结果,如何删除查询? [复制]

php中查询mysql select 第一个字段 第二个字段 from 表名。输出语句应

使用 PHP 数组输出 MySQL 查询 - foreach 循环错误“非法偏移”和“无效参数”

PHP相交与MySQL相交

php按当前年份、季度、当月,查询mysql数据库并输出数组

当从 MySQL 数据库动态加载元素时,在 PHP 中连接 2 个 JSON 数组