PHP和SetInterval检查更改值

时间:2017-08-04 15:07:06

标签: javascript php jquery html mysql

我正在尝试使用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秒显示一条相同的记录,直到数据库中出现新的插入内容 - 参见图片;

enter image description here

我只想显示新记录一次,即仅在SerialNo递增时显示记录。

据推测,我需要检查data.SerialNo是否已增加,否则不显示任何内容?

任何建议都将受到赞赏。

0 个答案:

没有答案