0

データベースのテーブルにあるデータをグラフ化するために、php ラッパー「highroller」を使用しています。

これで、このコードが機能します (例から):

<?php
require_once('../HighRoller/HighRoller.php');
require_once('../HighRoller/HighRollerSeriesData.php');
require_once('../HighRoller/HighRollerLineChart.php');
$chartData = array(5324, 7534, 6234, 7234, 8251, 10324);
$series1 = new HighRollerSeriesData();
$series1->addName('myData')->addData($chartData);
$linechart = new HighRollerLineChart();
$linechart->chart->renderTo = 'linechart';
$linechart->title->text = 'Hello HighRoller';
$linechart->yAxis->title->text = 'Total';
$linechart->addSeries($series1);
?>

<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<!-- HighRoller: set the location of Highcharts library -->
<?php echo HighRoller::setHighChartsLocation("../highcharts/highcharts.js");?>
</head>

<body>
<div id="linechart"></div>
<script type="text/javascript">
<?php echo $linechart->renderChart();?>
</script>
</body>

ただし、 $chartdata = array(5324,...) を編集して、データベースからこれを取得できるようにしようとしています。これが私の試みです:

$connection = mysql_connect(#,#,#) or die("Couldn't connect to the server.");
$database = mysql_select_db(#, $connection) or die ("Couldn't select the correct database.");

$result = mysql_query("SELECT price FROM highroller");

while ($row = mysql_fetch_array($result)){
    $priceData[] = $row['price'];
}

$chartData = $priceData;

$linechart = new HighRollerLineChart();
$linechart->chart->renderTo = 'linechart';
$linechart->title->text = 'Line Chart';

$series1 = new HighRollerSeriesData();
$series1->addName('myData')->addData($chartData);

$linechart->addSeries($series1);

$priceData は以前の静的配列と同様の配列であるため、これが機能しない理由がわかりません。

また、参考までに、ライブラリの「addData」の関数を次に示します。

/** add data to plot in your chart
   * @param $chartdata - array, data provided in 1 of 3 HighCharts supported array formats (array, assoc array or mult-dimensional array)
   * @return void
   */
  public function addData($chartdata){
    if(!is_array($chartdata)){
      die("HighRoller::addData() - data format must be an array.");
    }
    $this->series = array($chartdata);
  }
4

1 に答える 1

0

質問がまだ有効かどうかはわかりませんが、$chartdata文字列ではなく数値の配列であることを確認する必要があります (DB から取得される可能性があるため)。

于 2013-07-08T13:49:46.607 に答える