仅从 SQL 输出中读取一列作为 PHP 中的数值数组
Posted
技术标签:
【中文标题】仅从 SQL 输出中读取一列作为 PHP 中的数值数组【英文标题】:Reading only one column from SQL output as a numerical array in PHP 【发布时间】:2011-02-18 06:08:21 【问题描述】:我运行以下查询:
SELECT tagID,
COUNT(*) AS TotalOccurrences
FROM coupon_tags
GROUP BY tagID
ORDER BY TotalOccurrences DESC
LIMIT 10
它返回如下输出:
tagID TotalOccurrences
------------------------
7 9
2 8
1 3
6 2
3 1
4 1
5 1
8 1
我不能做mysql_fetch_array(mysql_query($thatQuery);
,因为它有两列数据,任何拉出的数组看起来都像垃圾。如何进一步将该查询简化为单列仍排序的数据,以便在数组中更容易使用?或者也许我使用了错误的 php/MySQL 函数(虽然我都看过了)?
编辑: 我发现查询在 phpMyAdmin 中可以正常工作,但是当我尝试使用 mysql_query()
进行查询时它会失败。
我的php代码:
$tagSQL = mysql_query($selectorSQL);
if (!$tagSQL) die("query failed"); //fails here
while ($tSrow = mysql_fetch_assoc($tagSQL))
var_dump($tSrow);
【问题讨论】:
“任何拉出的数组看起来都像垃圾”是什么意思?你能做一个 vardump($thearray) 并发布结果吗? 请同时发布您的 php 代码 【参考方案1】:您可以这样做以“将查询简化为单列仍排序的数据”。
SELECT tagID
FROM coupon_tags
GROUP BY tagID
ORDER BY COUNT(tagID) DESC
LIMIT 10
只需确保对单个列使用计数而不是计算所有内容,这将极大地影响性能。
【讨论】:
【参考方案2】:不要试图在一行中完成所有事情。很难调试。
$sql = "SELECT ...";
$result = mysql_query($sql);
if (!$result) die("query failed");
while ($row = mysql_fetch_assoc($result))
var_dump($row);
【讨论】:
是的,问题是查询失败。问题是 - 当我在 phpMyAdmin 中运行它时,它工作正常。我如何从这里拿走它?以上是关于仅从 SQL 输出中读取一列作为 PHP 中的数值数组的主要内容,如果未能解决你的问题,请参考以下文章
从数据库中查出两列数据,返回的是一个hashmap,怎么把其中的一列作为显示值一列作为value,数据库是oracle