データベースのテーブルにあるデータをグラフ化するために、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);
}