1

スプライン ハイチャートを作成し、 How to load data from JSON to Highchart?のソリューションを実装しようとしています。、それはミナ・ガブリエルからの答えです。コードはこんな感じ。

test.php

}
// Set the JSON header
header("Content-type: text/json");

// The x value is the current JavaScript time, which is the Unix time multiplied     by       1000.
$x = time() * 1000;
$y = rand(0,100) ; 



// Create a PHP array and echo it as JSON
$ret = array($x, $y);
echo json_encode($ret);
?>

ハイチャート スクリプトでは、次のようになります。

<script>
/**
 * Request data from the server, add it to the graph and set a timeout to request again
 */
var chart; // global
function requestData() {
$.ajax({
    url: 'http://localhost:8080/test.php',
    success: function(point) {
        var series = chart.series[0],
            shift = series.data.length > 20; // shift if the series is longer than 20

        // add the point
        chart.series[0].addPoint(point, true, shift);

        // call it again after one second
        setTimeout(requestData, 1000);    
    },
    cache: false
   });
 }
 $(document).ready(function() {
   chart = new Highcharts.Chart({
      chart: {
        renderTo: 'container',
        defaultSeriesType: 'spline',
        events: {
            load: requestData
        }
    },
    title: {
        text: 'Live random data'
    },
    xAxis: {
        type: 'datetime',
        tickPixelInterval: 100,
        maxZoom: 20 * 1000
    },

    yAxis: {
        minPadding: 0.2,
        maxPadding: 0.2,
        title: {
            text: 'Value',
            margin: 80
        }
    },
    series: [{
        name: 'Random data',
        data: []
     }]
   });        
});
  </script>
  <  /head>
<body>

そして、それらはうまく機能します。しかし、次のtest.phpように y 値をデータベースからの数値として設定するようにコードを変更しようとすると、次のようになります。

<?php
header("Content-type: text/json");
$db = mysql_connect("localhost","myusername","mypassword");
mysql_select_db("mydatabase");


$day=date('Y-m-d'); //UTC standar time

$result = mysql_query("SELECT COUNT(*) FROM table WHERE time='{$day}';");
$count = mysql_fetch_array($result);

// The x value is the current JavaScript time, which is the Unix time multiplied by       1000.
$x = time() * 1000;
$y = $count[0]; 

// Create a PHP array and echo it as JSON
$ret = array($x, $y);
echo json_encode($ret);
?>

折れ線グラフは機能しません。私はSQLコードをチェックしましたが、正しく動作します。私は何か見落としてますか?

4

1 に答える 1

0

与えられた情報とこの投稿から、この問題に対する私の最善の策は、 $count[0] は文字列であり、highcharts は厳密に数値である必要があるということです。次のことを試していただけますか

   $y = intval($count[0]); // OR floatval($count[0]);
于 2012-08-04T05:54:01.540 に答える