Php 是否可以用“引用”来引用html行;指针;?

Php 是否可以用“引用”来引用html行;指针;?,php,html,mysql,Php,Html,Mysql,我在数据库中有一个表,其中的一些值涉及特定时间(特定日期)内特定房间的湿度、温度、亮度和噪音。我想将它们放在一个html表中,如下所示: 问题是,我的html表必须只显示精确日期的值,因此在一天结束时,html表必须有96个值(从00:00到23:45),第二天必须清空它。 我意识到有两种方法可以解决这个问题: 在一天结束时,必须删除行,因此使用两个循环 (一个用于创建行,另一个用于单个单元格),可以重新创建第二天的表。我不知道如何删除html行 在一天结束时,使用“指针”可以返回到 第一行和

我在数据库中有一个表,其中的一些值涉及特定时间(特定日期)内特定房间的湿度、温度、亮度和噪音。我想将它们放在一个html表中,如下所示:

问题是,我的html表必须只显示精确日期的值,因此在一天结束时,html表必须有96个值(从00:00到23:45),第二天必须清空它。 我意识到有两种方法可以解决这个问题:

  • 在一天结束时,必须删除行,因此使用两个循环 (一个用于创建行,另一个用于单个单元格),可以重新创建第二天的表。我不知道如何删除html行
  • 在一天结束时,使用“指针”可以返回到 第一行和更改单元格的内容
  • 在这两种情况下,我都需要一个允许在表的开头返回的“指针”。 这是我的代码,但是有一些bug。如果你有不同的想法,也请告诉我

    <?php
    // Ignore user aborts and allow the script
    // to run forever
    ignore_user_abort(true);
    ?>
    
    <html>
        <head>
            <meta charset="utf-8">
            <script>
                function waiting() 
                {
                    //wait 15 minutes (900 seconds) until the insertion of new data 
                    setTimeout(function() {alert("New line added!"); }, 900);
                }
            </script>
            <title> Benvenuto </title>
        </head>
        <body>
            <table style="width:100%" border='0'>
                <tr>
                    <td valign="top">
                        <input type="date" value="<?php echo date("Y-m-d");?>">
                    </td>
                </tr>
            </table>
    
            <table border='0' style="width:100%">
                <tr>
                    <td>
                        <b> Hour </b>
                    </td>
                    <td>
                        <b> ID room </b>
                    </td>
                    <td>
                        <b> Humidity </b>
                    </td>
                    <td>
                        <b> Temperature </b>
                    </td>
                    <td>
                        <b> Brightness </b>
                    </td>
                    <td>
                        <b> Noise </b>
                    </td>
                </tr>
            </table>
            <?php
                mysql_connect(" localhost", "root", "root");
                mysql_select_db("my_db");
                $date = date("d/m/Y");
                $hour_now = date('H:i', strtotime('00:00'));
                $hour_end = date('H:i', strtotime('23:45'));
                $row = 96; //Dynamic number for rows
                $col = 6; // Dynamic number for columns
                do 
                {
                    echo "<table>";
                    //rows loop
                    for($i=0;$i<$row;$i++)
                    {
                        echo "<tr>";
                        //cells loop
                        for($j=0;$j<$col;$j++)
                        {
                            echo "<td>";
                                //hour
                                $hour_on_table = mysql_query("SELECT hour FROM DATA WHERE hour='$hour_now' AND date='$date'");
                                echo mysql_result($hour_on_table, 0);
                            echo "</td>";
                            echo "<td>";
                                //id_room
                                $id_room = mysql_query("SELECT id_room FROM DATA WHERE hour='$hour_now' AND date='$date'");
                                echo mysql_result($id_room, 0);
                            echo "</td>";
                            echo "<td>";
                                //humidity
                                $humidity = mysql_query("SELECT humidity FROM DATA WHERE hour='$hour_now' AND date='$date'");
                                echo mysql_result($humidity, 0);
                            echo "</td>";
                            echo "<td>";
                                //temperature
                                $temperature = mysql_query("SELECT temperature FROM DATA WHERE hour='$hour_now' AND date='$date'");
                                echo mysql_result($temperature, 0);
                            echo "</td>";
                            echo "<td>";
                                //brightness
                                $brightness = mysql_query("SELECT brightness FROM DATA WHERE hour='$hour_now' AND date='$date'");
                                echo mysql_result($brightness, 0);
                            echo "</td>";
                            echo "<td>";
                                //noise
                                $noise = mysql_query("SELECT noise FROM DATA WHERE hour='$hour_now' AND date='$date'");
                                echo mysql_result($noise, 0);
                            echo "</td>";
    
                            echo '<script type="text/javascript"> attesa(); </script>';
                            $hour_now = date('H:i', strtotime($hour_now) +900);    //add 15 min
                        }
                        echo "</tr>";
                    }
                    echo "<table>";
                }
            ?>
        </body>
    </html>
    
    
    函数等待()
    {
    //等待15分钟(900秒),直到插入新数据
    setTimeout(函数(){alert(“添加新行!”);},900);
    }
    本维努托
    
    我认为最好的解决方案是编写一个更好的查询,选择一天中所有记录的所有字段。然后迭代结果,并对其进行响应


    否。您已将其发送到浏览器。您必须使用javascript来删除它

    但您可能不应该让php脚本永远运行。服务器和浏览器之间迟早会出现超时

    您应该在setTimeout中使用ajax调用来刷新数据。例如,您可以使用,用解析响应,从中剪切表,并用替换旧表

    类似这样(未经测试):


    另一方面。。。最好只查询一次数据库,获得所需的一切,然后使用数据。在一次查询中获取噪音、湿度、温度等,然后打印值。请。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO,我相信您可以用JavaScript做您想做的事情,但一般来说,问题是相当广泛的。我认为您最好的解决方案是编写一个更好的查询,只选择所选日期的记录。您在查询中根本不使用日期,而是执行多个查询以从记录中获取每个字段。为什么不在一个写得很好的查询中从所有相关记录中获取所有相关字段。同意jay。。。有很多方法可以做到这一点。你们并没有解释数据是如何写入数据库的。您可以将它们与另一个脚本一起插入,并使用此页面仅用于从数据库读取当天的数据。。。同样,我们也不知道太多细节。我必须让php脚本永远运行,因为我想在同步模式下查看设备获取的所有数据。在这种情况下,您仍然可以使用javascript删除除标题表之外的所有表。您能帮我处理$('table:not(:first)')。remove();虽然正确的方法是使用websockets。我试过你的代码,但是它显示的值没有考虑输入的日期。你不考虑输入是什么意思?它们不是来自正确的日期吗?给定您提供的数据库架构,此查询应该可以工作
    $.ajax(url).done(function(data) {
        $('table:first') // this finds the first table element in the html
            .replaceWith(
                $.parseHTML(response).find('table:first') // cut out the table element from the response
            ); // replace the table in the html with the one in the ajax response
    })