从PHP输出中只读取一列作为PHP中的数值数组

时间:2011-02-18 06:08:21

标签: php sql mysql arrays

我运行以下查询:

  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);
            }

2 个答案:

答案 0 :(得分:1)

您可以像这样“将该查询简化为单列静止排序数据”。

SELECT tagID            
FROM coupon_tags
GROUP BY tagID
ORDER BY COUNT(tagID) DESC 
LIMIT 10

只需确保在单个列上使用count而不是计算所有内容,这将极大地影响性能。

答案 1 :(得分:0)

不要尝试在一行中做所有事情。使调试变得困难。

$sql = "SELECT ...";
$result = mysql_query($sql);
if (!$result) die("query failed");
while ($row = mysql_fetch_assoc($result)) {
  var_dump($row);
}