【问题标题】:JSON data not showing in highstock Candlestick chart using PHP & MYSQL使用 PHP 和 MYSQL 在 highstock 烛台图表中未显示 JSON 数据
【发布时间】:2012-10-28 14:54:49
【问题描述】:

我正在尝试使用 php 和 mySQL 创建 highstockcandlestick 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


【解决方案1】:

您的数据应按 x(时间戳)升序排序。

【讨论】:

  • 这是正确的答案。可能对于任何图表,我只是在 highstock 图表中体验到了这一点。谢谢...
猜你喜欢
  • 2019-09-16
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多