0

私の問題は次のとおりです。

下の図に示すように、2 つの情報セットを提供するデータベースがあります。

http://i.imgur.com/tlVtVTX.png

私のPHP/JSONまたはSQLがここで問題であるかどうかはよくわかりません..JSONデータセットには複数のデータが必要であることを認識しています。

[{"name":"Person1","data":[123123など]}

私の問題は、次のように表示されることです。

[{"name":"Person1","data":[123123]}

[{"name":"Person1","data":[2345436]}

JSON (プライバシーの問題のために名前と番号を変更):

[{"name":"Person1","data":[123123]},{"name":"Person1","data":[123123]}
,{"name":"Person2","data":[123123]},{"name":"Person2","data":[123123]}
,{"name":"Person3","data":[123123]},{"name":"Person3","data":[123123]}
,{"name":"Person4","data":[123123]},{"name":"Person4","data":[123123]}]

SQL (これも変更されていますが、同じクエリである必要があります):

$SQL = "SELECT ISNULL(USERNAME) AS Accountmanagers, xMonth AS xMonth, ROUND(SUM(report.[FATDOLLARS(EUR)]), 0) AS COGS
FROM SecretDB 
WHERE xYear = '2013'
GROUP BY ISNULL(USERNAME), xMonth
ORDER BY ISNULL(USERNAME), xMonth

私のクエリは次のようになります。

http://i.imgur.com/q4QCsRF.png

これは、JSON データに使用する php です。

while( $row = sqlsrv_fetch_array( $somevariablehere, SQLSRV_FETCH_ASSOC) ) 
{

    $name = $row['Accountmanagers'];

    $categories = array($row['xMonth']);

    $data = array($row['COGS']);

    $arr[] = array('name' => $name, 'data' => $data);  
}

$arr = json_encode($arr, JSON_NUMERIC_CHECK);

echo $arr;

HighChart ("series: json" はダミー データに置き換えられます):

<script>
$(function () {
    var chart3;
    $(document).ready(function() {

       // $.getJSON("account.php", function(json) {

            chart3 = new Highcharts.Chart({
                chart: {
                    renderTo: 'accountmanagers',
                    type: 'column'
                },
                title: {
                    text: '2012'
                },
                xAxis: {
                    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],
                    title: { text: 'Month'}
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'Revenue'
                    }
                },
                legend: {
                    layout: 'vertical',
                    backgroundColor: '#FFFFFF',
                    align: 'left',
                    verticalAlign: 'top',
                    x: 100,
                    y: 70,
                    floating: true,
                    shadow: true
                },
                tooltip: {
                    formatter: function() {
                         return '<b>'+ this.series.name +'</b><br/>'+
                            this.x +': '+ this.y +'€';
                    }
                },
                plotOptions: {
                    column: {
                        pointPadding: 0.2,
                        borderWidth: 0
                    }
                },
                    series: [{"name":"Person1","data":[12528]},{"name":"Person1","data":[2658]},{"name":"Person2","data":[27368]},{"name":"Person2","data":[30793]},{"name":"Person3","data":[64987]},{"name":"Person3","data":[21582]},{"name":"Person4","data":[53735]},{"name":"Person4","data":[14810]}]
            });
       // });
    });

});
        </script>

これ以上の情報が必要かどうかわかりませんが、もしあれば教えてください。

データごとに新しいシリーズを作成するのではなく、「Person」または Accountmanager の値を組み合わせて、もちろんそれらを数か月にわたって分散させたいと考えています。

前もって感謝します :-)

4

2 に答える 2

1

エラーが見つかりました-それはSQLクエリでした.左外部結合を大量に作成しました.(多くのコピー/貼り付けの後)、1つのseries.nameを含む各月のデータが得られました.

于 2013-02-25T08:45:56.210 に答える
0

カテゴリで言及したすべての月について、各ユーザーに値を提供する必要があります。各人に2つの値を個別に渡しているため、JANのみのグラフを取得しています

series: [{
            name: 'Person1',
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]

        }, {
            name: 'Person2',
            data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]

        }]

ハイチャートが提供するサンプルフィドル

于 2013-02-22T10:21:31.603 に答える