繁体   English   中英

使用Canvas.js和MySQL数据库的PHP和HTML图表

[英]Php and Html chart using Canvas.js using mysql database

我试图从mysql数据库中获取数据并使用canvas.js方式绘制折线图.....我只想知道如何将我从数据库中获取的值传递给dataPoints:x和y值... .i; e..X将包含时间,Y将包含温度。我试图在此处绘制时间与温度的关系图。

我已使用此代码从php数据库中接收到这两个数据值。

$sql1 = "SELECT Time FROM sdata ORDER BY ID DESC LIMIT 10;";
$response1 = mysqli_query($connect, $sql1) or die(mysqli_error($connect));
while($row1 = mysqli_fetch_all($response1)){
    $r1[]= $row1;
}

$sql2 = "SELECT Temperature FROM sdata ORDER BY ID DESC LIMIT 10;";
$response2 = mysqli_query($connect, $sql2) or die(mysqli_error($connect));
while($row2 = mysqli_fetch_all($response2)){
    $r2[]= $row2;
}

在这里,当我给出echo并查看r1和r2值时,我能够看到数据库值...。

-这些是我数据库中的DateTime值:

[[[[“ 8/30/2016 9:37”],[“ 8/30/2016 9:33”],[“ 8/30/2016 9:32”],[“ 8/30/2016 9: 32“],[” 8/30/2016 9:32“],[” 8/30/2016 9:32“],[” 8/30/2016 9:32“],[” 8/30/2016 9:31“],[” 8/30/2016 9:31“],[” 8/30/2016 9:31“]]]

-这些是我数据库中的温度值:

[[[25],[25],[28.91],[28.82],[28.84],[28.91],[29.05],[29.05],[28.92],[29.11]]]

现在,我想将这些变量传递给dataPoints:x和y,如以下代码所示:

<script type="text/javascript">
window.onload = function() {

    var chart = new CanvasJS.Chart("chartContainer", {
        title: {
            text: "Line Chart"
        },
        axisX: {

            interval: 5,
            title: "Time",
            valueFormatString: "hh:mm TT",

        },
        axisY: {

            interval: 20,
            title: "Temp"

        },
        data: [{
            type: "line",
            dataPoints: ???????????(HOW DO I PASS THE r1 and r2 values here for x and y respectively so that it give me a line chart is my question)

        }]
    });
    chart.render();

}
</script>

请帮助我。

您可以从此页面下载CanvasJS示例,其中包括使用mySQL数据库中的数据呈现图表。

您需要以CanvasJS接受的格式解析数据。 检查下面的代码

$r1=[[["8/30/2016 9:37"],["8/30/2016 9:33"],["8/30/2016 9:32"],["8/30/2016 9:32"],["8/30/2016 9:32"],["8/30/2016 9:32"],["8/30/2016 9:32"],["8/30/2016 9:31"],["8/30/2016 9:31"],["8/30/2016 9:31"]]];

$r2=[[[25],[25],[28.91],[28.82],[28.84],[28.91],[29.05],[29.05],[28.92],[29.11]]];
$dataPoints=array();
for($i=0;$i<count($r1[0]);$i++){
    array_push($dataPoints,array('x'=> strtotime($r1[0][$i][0])*1000,'y'=>$r2[0][$i][0]));
}

var chart = new CanvasJS.Chart("chartContainer", {
.
.
dataPoints: <?php echo json_encode($dataPoints); ?> // edited
.
.
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM