我正在尝试使用PHP和JavaScript在我的网站上显示“实时数据Feed”。为了实现这一点,我正在查询MySQL数据库并检索结果。
数据库表名为transactions
,设置如下;
+---------------------+--------+----------+
| TimeStamp | CardNo | SerialNo |
+---------------------+--------+----------+
| 2017-08-04 15:28:29 | 883662 | 544331 |
+---------------------+--------+----------+
| 2017-08-03 19:44:19 | 100927 | 544332 |
+---------------------+--------+----------+
| 2017-08-0311:21:24 | 655210 | 544333 |
+---------------------+--------+----------+
SerialNo
列充当主键,并在每个表插入时递增。
查询表的PHP脚本称为getData.php
,内容如下;
访问getdata.php
$query = "SELECT TimeStamp, CardNo, SerialNo FROM transactions ORDER BY TimeStamp DESC LIMIT 1";
if ($result = $conn->query($query)) {
$row = $result->fetch_assoc();
echo json_encode($row);
}
我有一些javascript每2秒调用一次这个脚本,index.html
如下;
的index.html
<script>
jQuery(document).ready(function() {
setInterval("showData()", 2000);
});
function showData() {
$.getJSON("getData.php", null, function(data) {
if (data != null) {
$("#data").prepend($("<div>"+data.TimeStamp + " " + data.CardNo+"</div>").fadeIn("slow"));
}
});
}
</script>
<div id="data"></div>
我可以在html页面上成功显示实时订阅源,并且它会按预期每2秒刷新一次,但是Feed会每2秒显示一条相同的记录,直到数据库中出现新的插入内容 - 参见图片;
我只想显示新记录一次,即仅在SerialNo
递增时显示记录。
据推测,我需要检查data.SerialNo
是否已增加,否则不显示任何内容?
任何建议都将受到赞赏。