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(
    '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;
    }

これは簡単な修正だと思いますが、ここで髪を引き裂きます!

4

3 に答える 3

2

期待される配列を取得するには、次の方法でコードを変更する必要があります。

$data = array();
while($graphData = mysql_fetch_array($graph)){
    $data[$graphData['MONTH']] = $graphData['COUNT'];
}
于 2012-09-30T08:26:27.330 に答える
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; 
}

したがって、基本的に、これはあなたが望むものの高速でさわやかなバージョンです。リストの使用法に注意してください。素敵で読みやすい。

于 2012-09-30T12:06:15.823 に答える
-1

たぶんこれが問題です:
" COUNT(*) COUNT"? に変更してみてくださいCOUNT(*)

于 2012-09-30T08:20:32.747 に答える