2011-02-18 58 views
0

我运行下面的查询:阅读从SQL输出只有一列数值数组中的PHP

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

你是什么意思“任何阵列拉看起来像垃圾”?你能做一个vardump($ thearray)并发布结果吗? – mellamokb 2011-02-18 06:11:05

+0

定义“垃圾” – 2011-02-18 06:12:17

回答

1

您可以这样做,以“将查询简化为单列仍然排序的数据”。

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

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

0

不要试图在一行中所做的一切。使它很难调试。

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