【发布时间】:2012-10-28 14:54:49
【问题描述】:
我正在尝试使用 php 和 mySQL 创建 highstock 的 candlestick chart。
这是我目前的代码,如果有人可以帮助我,非常感谢:
这是我从 mySQL 数据库中检索数据并将其转换为 JSON 格式 (datachart.php) 的代码:
$conn = mysql_connect("localhost", "root", "") or die (mysql_error ());
$db = mysql_select_db ("b27sim") or die (mysql_error ());
$result=mysql_query ("SELECT date, open, high, low, close FROM mb27_daily") or die (mysql_error ());
$data = array();
$count = 0;
while ($row=mysql_fetch_array($result))
{
$newdate = strtotime($row['date']) * 1000;
$data[] = array( $newdate, (float)$row['open'], (float)$row['high'], (float)$row['low'], (float)$row['close']);
$count++;
}
echo json_encode($data);
这是 datachart.php 的结果:
[[1350252000000,368.72,370.22],[13498.09,370.22],[134982000,366.58,369.13,364.92,368.92],[134973369.92],[134973369.93,366.882,368.64],[134938800000,367.28,368.64],[1349388000000,85,3688000000,85,36880000。 ],[1349301600000,362.22,365.61],[134925.365.61],[1349215200.27],[13492.363.54],[13492.363.73,60.79,362.73,360.33,361.77],[134904240,360.33,361.77],[13490424000,360.75,360.75,360.75,360.75,357.94,359.46], [1348783200000,360.62,84,362.5],[1348.696809,356.39,361.01,355.32,359.34],[13485240003],[1348.360.39,356.34,359.7],[13484376.7],[1348437600000,357.96,360.99,355.92,356.89],[13481784000,357.92,356.89],[13481784000,357.92,356.89],[1348178400000 359.27 ,360.53,356.93,360.53],[1348092000000,358.74,358.01],[1348.51,358.01],[1348092000,357.97,361.82,357.24,359.86],[1347.24,359.86],[1347919209.86],[13479192036],[1347919209.86],[12330122.5],[1233010800000,119.28,122.42 ,119.28,121.91]]
这是我在 index.htm 中的 javascript 代码:
$(function() {
$.getJSON('datachart.php', function(data) {
// create the chart
chart = new Highcharts.StockChart({
chart : {
renderTo : 'container',
},
rangeSelector : {
selected : 1
},
title : {
text : 'IB27 Price'
},
series : [{
type : 'candlestick',
name : '',
data : data,
tooltip: {
valueDecimals: 2
},
dataGrouping : {
units : [
['week', // unit name
[1] // allowed multiples
], [
'month',
[1, 2, 3, 4, 6]]
]
}
}]
});
});
});
这是我调用容器的 div:
<div id="container" style="height: 500px; min-width: 500px"></div>
结果如下: 我得到的里面没有图表,但在底部显示时间线,在右上角显示日期范围等。
感谢你们在这方面的帮助,因为我在过去的 4 个小时里一直在敲我的头... :)
谢谢, 拉兹
【问题讨论】:
-
您可能希望在发布此内容后更改您的数据库连接详细信息(从外观上看,您之前可能已经想这样做了)
标签: javascript json highstock