从 mysql 到 PHP 获取 dygraph.js 的 csv 文件

Getting a csv file from mysql over PHP for dygraph.js

我的目标是创建一个网站,用 dygraph.js 显示我的 mysql 数据库中的数据。该网站应在每次打开时加载数据,因为我的 Mysql 数据库每小时接收一次新数据。

我的问题是我不知道如何制作一个 PHP 网站,returns 一个 csv 文件(不下载)。

基本上我的问题是:是否可以连接 mysql 和 dygraph?如果是,怎么做?

好的,我有办法了。

对于所有遇到同样问题的人: 我从 glaskugelsehen 找到了一个非常好的教程:https://glaskugelsehen.wordpress.com/2014/05/24/tutorial-speicherung-von-arduino-messdaten-auf-webserver-und-deren-darstellung-teil-5/

它是德语,但您可以在不了解语言的情况下使用代码 因为教程真的很旧,所以我不得不将它翻译成 mysqli 并做一些小的改动。然后我得到了这个 php 代码:

<html>
    <head>
        <br>
        <script type="text/javascript"src="libraries/dygraph.min.js"></script>
        <link rel="stylesheet" src="CSS/dygraph.css" />
    </head>
    <body style="color: rgb(0, 0, 0); background-color: rgb(77, 77, 77)" alink="#ee0000" link="#0000ee" vlink="#551a8b">
        <div style="text-align: center;"><span style="color: rgb(255, 255, 255);">Daten aus MySQL<br></span>
            <table style="margin:0px auto" border="0" width="500" align="center">
                <tr>
                    <td style="background-color: #FFFFFF">
                        <div id="graphdiv2"
                             style="width:500px; height:300px;"></div>
                        <script type="text/javascript">

                            g2 = new Dygraph(document.getElementById("graphdiv2"),
                                             <?php
                                             $mysql_host = "****";
                                             $mysql_db = "****";
                                             $mysql_user = "****";
                                             $mysql_pw = "****";
                                             $connection = new mysqli($mysql_host, $mysql_user, $mysql_pw, $mysql_db);   // Check connection
                                             if ($connection->connect_error) {
                                                 die("Connection failed: " . $connection->connect_error);
                                             } 
                                             $abfrage = "SELECT DATE_FORMAT(Zeit, '%Y/%m/%d %H:%i:%s') AS date, Temperatur, Luftfeuchtigkeit FROM messung";
                                             $ergebnis = mysqli_query($connection,$abfrage);

                                             echo "[";                                  // start of the 2 dimensional array
                                             while($row = mysqli_fetch_array($ergebnis))
                                             {
                                                 $utime = strtotime($row[datum]);
                                                 $diffutime = $utime - $lastutime;
                                                 if ($diffutime > 600) {
                                                     echo "["."new Date(\"".$row[date]."\")".",NaN,NaN],";
                                                 }
                                                 else {
                                                     echo "["."new Date(\"".$row[date]."\")".",".$row[Temperatur].",".$row[Luftfeuchtigkeit]."],";
                                                 }
                                                 $lastutime = strtotime($row[datum]);
                                             }
                                             echo "]";
                                             mysqli_close($connection);
                                             ?> ,
                                             { rightGap: 20,
                                             connectSeparatedPoints: true,
                                             labels: [ "Zeit", "Temperatur", "Luftfeuchtigkeit" ] }          // options
                                            );
                        </script>
                    </td>
                </tr>
            </table>
        </div>
    </body>
</html>

如果有人想使用此代码,他必须填写他的 mysql 信息。

希望这对您有所帮助