0

MSSQL からデータを表示しようとしています。http://www.blueflame-software.com/blog/using-highcharts-with-php-and-mysqlで例を見ました。Y 軸の値は既に良好ですが、X 軸は私のチャートに表示されないため、チャートの値は 0 X 軸のみです。

data.php

mssql_select_db("CU-CAB01", $con);

$result = mssql_query("select count(nba) sumnba, datein from tbl_anggota where tgl_masuk > '2012-06-01'group by tgl_masuk");

while($row = mssql_fetch_array($result)) {
  echo $row['tgl_masuk'] . "\t" . $row['jumlah']. "\n";

index.php

<script type="text/javascript" src="js/jquery-1.7.1.min.js" ></script>
<script type="text/javascript" src="js/highcharts.js" ></script>
<script type="text/javascript" src="js/themes/dark-blue.js"></script>

<script type="text/javascript">
    var chart;
            $(document).ready(function() {
                var options = {
                    chart: {
                        renderTo: 'container',
                        defaultSeriesType: 'line',
                        marginRight: 130,
                        marginBottom: 25
                    },
                    title: {
                        text: 'Hourly Visits',
                        x: -20 //center
                    },
                    subtitle: {
                        text: '',
                        x: -20
                    },
                    xAxis: {
                    type: 'datetime',
                        tickInterval: 10000 * 1000, // one hour
                        tickWidth: 0,
                        gridLineWidth: 1,
                        labels: {
                            align: 'center',
                            x: -3,
                            y: 20,
                            formatter: function() {
                                return Highcharts.dateFormat('%e', this.value);
                            }
                        }
                    },
                    yAxis: {
                    tickInterval: 2,
                        title: {
                            text: 'Anggota'
                        },
                        plotLines: [{
                            value: 0,
                            width: 1,
                            color: '#808080'
                        }]
                    },
                    tooltip: {
                        formatter: function() {
                                return Highcharts.dateFormat('%l%p', this.x-(1000*3600)) +'-'+ Highcharts.dateFormat('%l%p', this.x) +': <b>'+ this.y + '</b>';
                        }
                    },
                    legend: {
                        layout: 'vertical',
                        align: 'right',
                        verticalAlign: 'top',
                        x: -10,
                        y: 100,
                        borderWidth: 0
                    },
                    series: [{
                        name: 'Count'
                    }]
                }

                jQuery.get('data.php', null, function(tsv) {
                    var lines = [];
                    traffic = [];
                    try {
                        // split the data return into lines and parse them
                        tsv = tsv.split(/\n/g);
                        jQuery.each(tsv, function(i, line) {
                            line = line.split(/\t/);
                            date = Date.parse(line[0] +' UTC');
                            traffic.push([
                                date,
                                parseInt(line[1].replace(',', ''),10)
                            ]);
                        });
                    } catch (e) {  }
                    options.series[0].data = traffic;
                    chart = new Highcharts.Chart(options);
                });
            });
</script>

と tbl_anggota クエリの私のデータは次のようになります

sumnba  datein
1       2012-07-03 00:00:00.000
4       2012-07-04 00:00:00.000
5       2012-07-05 00:00:00.000
5       2012-07-06 00:00:00.000
2       2012-07-16 00:00:00.000
5       2012-07-17 00:00:00.000
1       2012-07-18 00:00:00.000
2       2012-07-19 00:00:00.000

dateinフィールドでjqueryを使用してデータを解析する際の私の間違いだと思うので、私のXaxisはnull値でのみ..

誰かが私のグラフに Xaxis 値を表示することはできますか?

4

1 に答える 1

0

クエリを上記のように出力すると、解析で X と Y が逆になります。日付フィールドはカウント フィールドの後にあります。

   // split the data return into lines and parse them
   tsv = tsv.split(/\n/g);
   jQuery.each(tsv, function(i, line) {
       line = line.split(/\t/);
        date = Date.parse(line[1] +' UTC'); //your datin is after the '\t'
        traffic.push([
            date,
            parseInt(line[0].replace(',', ''),10) //your count is before the '\t'
        ]);
    });

そして、空の catch ブロックを修正してください。コードのクリティカル セクションのエラーを無視することは、決して良い考えではありません。

于 2012-09-17T14:36:00.563 に答える