首页 > 解决方案 > 如何在特定时期从数据库更新特定数据

问题描述

如果用户收到新通知,有什么方法可以保持更新信息?

打开页面时,它包含 pageTop.php 的内容。如果有一些未经检查的通知,它会在那里检查数据库。并在查询的基础上加载 note_NO 或 note_YES。

在特定时间段获得新信息的方法是什么?

下一页适用于页面加载或刷新。但我不想每次都重新加载 header.php。

头文件.php:

<?php include_once("pageTop.php");?>
<div id="pageMidle"></div>
<div id="pageFoot"></div>

页面顶部:

$sql = "SELECT id FROM note WHERE user='$l_user' AND did_read ='0' ";
$query = mysqli_query($con, $sql);
$row = mysqli_fetch_row($query);

$nrows = mysqli_num_rows($query);
if ($numrows == 0) {
    $envelope = '<a href="notifications.php" title="No notifications"><img src="images/note_NO.jpg" width="30" height="30" alt="Notes"></a>';
} else {
    $envelope = '<a href="notifications.php" title="You have new notifications"><img src="/images/note_YES.gif" width="30" height="30" alt="Notes"></a>';
}      

html:

  <div id="envolopeDIV">
          <?php echo $envelope; ?> 
      </div>

标签: javascriptphp

解决方案


您可以使用会话来跟踪后端请求之间的时间。如果您指定的时间段已过,请包含用于查询数据库的代码段。

session_start();
const TIME_PERIOD = 123456;
$currentTimestamp = time();
$previousTimestamp = $_SESSION['previous_timestamp'] ?? 0;
if ($previousTimestamp + TIME_PERIOD > $currentTimestamp) {
    // check notifications
}
$_SESSION['previous_timestamp'] = $currentTimestamp;
//...

推荐阅读