Javascript Chart.js不显示来自数据库的结果

Javascript Chart.js不显示来自数据库的结果,javascript,php,mysql,chart.js,Javascript,Php,Mysql,Chart.js,我正在创建一个图表,显示数据库中每个传感器的数据。我成功地将其设置为仅1个传感器,但当我尝试在数据库中显示每个传感器的图表时,没有显示任何线条 我正在使用以下代码: // select all sensors in db $sql = "SELECT * FROM sensoren"; $result = $link->query($sql); if ($result->num_rows > 0) { // data of each row while($ro

我正在创建一个图表,显示数据库中每个传感器的数据。我成功地将其设置为仅1个传感器,但当我尝试在数据库中显示每个传感器的图表时,没有显示任何线条

我正在使用以下代码:

// select all sensors in db
$sql = "SELECT * FROM sensoren";
$result = $link->query($sql);

if ($result->num_rows > 0) {
    // data of each row
    while($row = $result->fetch_assoc()) {
        $sensor = $row['sensor_id'];
        echo "<div id='sensor-$sensor' class='sensoren'>";
        echo "<div class='one-third'>";
        echo "<center><h4>Sensor</h4></center>";
        echo "<center><h4>$sensor</h4></center>";
        echo "</div>";
        echo "<div class='two-third'>";
            /* Database settings for selecting of values that the sensor send to db */
    $host = 'localhost';
    $user = 'casbek1q_system';
    $pass = 'JUITGhJ>NKIL^';
    $db = 'casbek1q_system';
    $mysqli = new mysqli($host,$user,$pass,$db) or die($mysqli->error);

    $data1 = '';
    $data2 = '';

    // select data from each sensor in db
    $sql2 = "SELECT * FROM `metingen` WHERE sensorid = '$sensor' ORDER BY id ASC LIMIT 10 ";
    $result2 = mysqli_query($mysqli, $sql2);

    // setting them in array
    while ($row2 = mysqli_fetch_array($result2)) {

        $data1 = $data1 . '"'. $row2['waarde'].'",';
        $data2 = $data2 . '"'. $row2['timestamp'].'",';

    }
    // removing last comma
    $data1 = trim($data1,",");
    $data2 = trim($data2,",");
?>
<div class="container"> 
        <h4>Laatste metingen van Sensor <?php echo $sensor ?></h4>        
            <canvas id="chart<?php echo $sensor;?>" style="width: 100%; height: 100%; background: #222; border: 1px solid #555652;"></canvas> <!-- giving each chart a unique ID -->
        <!-- stuk script van chart.js om de grafiek te maken -->
            <script>
                var ctx = document.getElementById(chart<?php echo $sensor;?>).getContext('2d');
                var myChart  = new Chart(ctx), {
                type: 'line',
                data: {
                    labels: [<?php echo $data2; ?>], // times from measurement
                    datasets: 
                    [{
                        label: 'Sensor <?php echo $sensor;?>', // give a name to line
                        data: [<?php echo $data1; ?>], // display measurements
                        backgroundColor: 'transparent',
                        borderColor:'rgba(255,99,132)',
                        borderWidth: 3
                    }]
                },

                options: {
                    scales: {scales:{yAxes: [{beginAtZero: false}], xAxes: [{autoskip: true, maxTicketsLimit: 20}]}},
                    tooltips:{mode: 'index'},
                    legend:{display: true, position: 'top', labels: {fontColor: 'rgb(255,255,255)', fontSize: 16}}
                }
            });
            </script>
<?php
        echo "</div>";
        echo "</div>";
        echo "</div>";
    } // end while loop, go to next sensor
}  
每个图中都应该有一条线,因为我的数据库中有2个传感器,每个传感器都有多个测量值


当我试图为每个传感器制作一个唯一的图表时,我遇到了这个问题,因为documentGetElementById需要为每个表提供一个唯一的id。

什么是$link,为什么在调用$mysqli之后还要打开另一个连接?请阅读:@Dharman$link来自我的dbconf文件,另称为$conn.$mysqli来自我在互联网上找到的一段代码,我可以从数据库将值放入图形中。@Dharman我知道SQL注入和预处理语句,这不是公开的。仅供个人使用。您已通过在此处发布将其公开。如果你知道如何正确地做,为什么要选择错误的、有缺陷的方法呢?你是在射自己的腿,不管它是供你使用还是供全世界使用。