Mysql选择进入数组

时间:2012-09-30 08:12:55

标签: php mysql

我基本上只是想从一个表中选择一个数组......并且它无法正常工作。

我有以下查询

$graph = mysql_query("SELECT MONTHNAME(dateadded) MONTH, COUNT(*) COUNT
FROM products
WHERE ((YEAR(dateadded)=2012) && (site_url = '$_GET[site_url_graph]'))
GROUP BY MONTH(dateadded)",$db);

我需要将结果放在这样的数组中(可以是长或短的月份名称,这不是问题):

$data = array(
    'Jan' => 12,
    'Feb' => 25,
    'Mar' => 0,
    'Apr' => 7,
    'May' => 80,
    'Jun' => 67,
    'Jul' => 45,
    'Aug' => 66,
    'Sep' => 23,
    'Oct' => 23,
    'Nov' => 78,
    'Dec' => 6
);

我正在尝试这个,但收到的消息不是数组:

$data = array();
while($graphData = mysql_fetch_array($graph)){
    $data[] = $graphData;
    }

我确信这是一个简单的修复,但在这里撕裂头发!

3 个答案:

答案 0 :(得分:2)

要获得预期的数组,您需要按照以下方式更改代码。

$data = array();
while($graphData = mysql_fetch_array($graph)){
    $data[$graphData['MONTH']] = $graphData['COUNT'];
}

答案 1 :(得分:0)

$graph = mysql_query("SELECT MONTHNAME(dateadded) MONTH, COUNT(*) COUNT
                      FROM products
                      WHERE ((YEAR(dateadded)=2012) && (site_url = '$_GET[site_url_graph]'))
                      GROUP BY MONTH(dateadded)",$db);

$data = array();
while(list($month, $count) = mysql_fetch_array($graph)) {
    $data[$month] = $count; 
}

所以,基本上这是你想要的快速而轻快的版本。注意列表的用法。很好,可读。

答案 2 :(得分:-1)

也许这就是问题:
COUNT(*) COUNT”? 尝试将其更改为COUNT(*)