【问题标题】:How to check if there is an added record on the database如何检查数据库中是否有添加的记录
【发布时间】:2025-11-25 22:15:01
【问题描述】:

这里有我的 index.php。它已经包含布局和其中的 php 代码。我只想知道数据库中是否有新记录。根据我的研究,它需要更新。我尝试了javascript自动刷新,现在整个页面都刷新了,所以如果有新记录,表格将自动显示新记录。但现在我的问题是如何知道是否有变化。我可以通过刷新显示数据库是否有更新,但我无法通知是否有更改。如果有新记录,我只想发出通知。所以现在我想知道如何检查数据库中是否有新记录。这是我的代码。

<div class="panel panel-default">
    <div class ="panel-body">


    <!-- TABLE OF REPORTS -->
    <div align = "center" style = " font-size: 9000px">
        <table class="table table-striped" name = "report">
            <thead>
                <tr align = "center"class = "active" >

                    <td class  = "theads" >Id</td>
                    <td class  = "theads" >Message</td>
                </tr>
            </thead>

            <!--Start of php code -->
            <?php   
            $page=1;//Default page
            $limit=10;//Records per page
            $start=0;//starts displaying records from 0
            if(isset($_GET['page']) && $_GET['page']!='')
            {
                $page=$_GET['page'];
            }
                $start=($page-1)*$limit;

                //Get total records (you can also use MySQL COUNT function to count records)
                $query=mysql_query("select report_id from reports");
                $rows=mysql_num_rows($query);

                $query=mysql_query("select * from reports order by datetime DESC LIMIT $start, $limit");


                if(mysql_num_rows($query)>0)
                {
                    while($row=mysql_fetch_array($query,1))
                    {
            ?>

            <tbody>
                <tr class = 'active'>
                <td align = 'center'><?php echo $row['report_id'] . "<br>";?></td>
                <td align = 'center'><?php echo $row['message'] . "<br>";?></td>
                </tr>
            </tbody>

                <?php
                    }
                }
            ?>
        </table>

    </div>

    </div>
</div>

【问题讨论】:

  • 这里是1 while($row=mysql_fetch_array($query,1))
  • 停止使用mysql,因为它会在近几年内消失。请改用mysqli 或 PDO...如果您希望您的网站长时间运行..
  • 分页用的。
  • @user3802633 你能解释一下它是如何帮助分页的吗?
  • 你的表有创建日期的字段吗?

标签: php mysql


【解决方案1】:

如果您想在客户端执行此通知系统,那么您可以创建一个具有最新创建日期的 cookie,并检查是否有任何创建日期大于 cookie 的日期,然后计算日期大于 cookie 值的行。

如果您想在服务器端执行此操作,则必须将上次看到的创建日期保存在数据库表中的某个位置并执行上述过程。

$query=mysql_query("select * from reports order by datetime DESC LIMIT $start, $limit");
if(isset($_SESSION['chk']))
{
    $sql=mysql_query("select count(*) as new_record from reports where datetime>$_SESSION['chk']");
    $count=mysql_fetch_array($sql);
    $new_record=$count['new_record']; // new records
}

if(mysql_num_rows($query)>0){$i=0;
while($row=mysql_fetch_array($query,1)){if($i==0){$_SESSION['chk']=$row['datetime'];$i++;}
?>

【讨论】:

  • 我怎样才能做到这一点?
  • 我遇到了错误“(T_ENCAPSED_AND_WHITESPACE).....”。根据我的探索..我认为这是在查询中。
  • 保持你的代码不变,只将我的更改插入到受尊重的地方,并将&lt;tbody&gt;放在while循环之外
  • 以上错误见此链接*.com/questions/21431958/…