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 usemysql_*
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 循环错误“非法偏移”和“无效参数”