0

PHP経由でSQLサーバーからデータを取得し、JSONとして出力しようとしているので、HighChartsに使用できます。これまでのところ、それが理にかなっていれば、結果を別のシリーズとして投稿することができます。

SQL/PHP:

$params = array(&$_POST['query']);

$tsql1 = "SELECT TOP 10 Company_Names, Revenue_Value1, Revenue_Value2

FROM Database.test report
GROUP BY Company_Name 
ORDER BY Revenue_Value1

$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET);

$getProducts = sqlsrv_query($conn, $tsql1, $params, $options);

if ($getProducts === false)

die( FormatErrors( sqlsrv_errors() ) );



while( $row = sqlsrv_fetch_array( $getProducts, SQLSRV_FETCH_ASSOC) ) 
{
    $rows[] = $row;
}

echo json_encode($rows, JSON_NUMERIC_CHECK); 

sqlsrv_free_stmt( $getProducts );?>

SQLはこのようなものを出力します

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

そして、このチャートを印刷します:

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

明らかに、これは私が出力したい方法ではありません..

xAxis を Quarters、yAxis を Revenue_Value1、Series-name を Company_Name として出力したいと考えています。

現在、これを使用してphpデータを取得しています。

<script type="text/javascript">
$(function () {
    var chart;
    $(document).ready(function() {
        $.getJSON("data.php", function(json) {

            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
                    type: 'line',
                    marginRight: 130,
                    marginBottom: 25
                },
                title: {
                    text: 'Revenue',
                    x: -20 //center
                },
                subtitle: {
                    text: '',
                    x: -20
                },
                xAxis: {
                    categories: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
                    title: { text: 'Months'}
                },
                yAxis: {
                    title: {
                        text: 'Revenue'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
                    formatter: function() {
                            return '<b>'+ this.series.name +'</b><br/>'+
                            this.x +': '+ this.y;
                    }
                },
                legend: {
                    layout: 'vertical',
                    align: 'right',
                    verticalAlign: 'top',
                    x: -10,
                    y: 100,
                    borderWidth: 0
                },
                series: json
            });
        });

    });

});
        </script>

data.php エコー:

{"Company_Names":"Company_Name","Revenue_Value1":45443,"Revenue_Value2":4654}

もちろん、いくつかのルールのためにいくつかの値を変更する必要がありました..私が達成しようとしていることをまだ見ていただけることを願っています.

編集:

    $arr = array();

while( $row = sqlsrv_fetch_array( $getProducts, SQLSRV_FETCH_ASSOC) ) 
{
    $name = $row['Distributor'];
    $data = array($row['Value']);

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

echo json_encode($arr, JSON_NUMERIC_CHECK);

これにより、データが HighCharts で読み取れるようになりました

4

1 に答える 1

0

あなたのシリーズは配列にあるはずです何かvarj =[]; j.push(json);を試してから実行してくださいseries: j

于 2013-02-18T19:24:30.497 に答える