ajax结果用作mysql查询约束

tyky79it  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(323)

我使用ajax每隔60秒显示一些数据库数据,如下所示:

$(document).ready(function(){
        function getData(){
           $.ajax({
                type: 'GET',
                url: 'data.php',
                success: function(data){
                    $('#output').html(data);
            });
        }

        getData();
        setInterval(function () { getData();  }, 60000);  // it will refresh your data every 1 sec

    });

这个 data.php 文件的查询类似于:

$sql = "select * from orders where time > date_sub(now(), interval 1 minute) ORDER BY id DESC";

如何记录ajax检索到的最后一个时间间隔并将其传递到查询中,以便它只显示前一个ajax结果+60秒之间的记录?
我担心如果有什么地方耽搁的话,它可能会漏掉一些记录。

8dtrkrch

8dtrkrch1#

首先设置一个参数,用于通过get方法获取数据

$(document).ready(function(){
        function getData(){
           $.ajax({
                type: 'GET',
                url: 'data.php',
                data:"req=req",
                success: function(data){
                    $('#output').html(data);
            });
        }

        getData();
        setInterval(function () { getData();  }, 60000);  // it will refresh your data every 1 sec

    });

并将php设置为使用数组获取数据。

if ($_GET['req']){
    $sql = "select * from orders where time > date_sub(now(), interval 1 minute) ORDER BY id DESC";
    while ($row = mysqli_fetch_assoc($sql)){
        $id = $row['id'];
        echo $id;
    }
}
xe55xuns

xe55xuns2#

我最终以json格式将数据从php传递到ajax:

function getData() {
                        $.ajax({
                            type: 'GET',
                            url: 'data.php',
                            data: {lastID: lastID},
                            dataType: 'json',
                            success: function (data) {
                                lastID = data[0].id;
                                console.log(lastID);
                                $.each(data, function (i, item) {
                                    var $tr = $('<tr class="page-break">').append(
                                            $('<td>').text(item.id),
                                            $('<td>').text(item.name),
                                            $('<td>').text(item.details)
                                            ).appendTo('#output');
                                });

                                function isEmpty(el) {
                                    return !$.trim(el.html());
                                }
                                if (!isEmpty($('#output'))) {
                                    window.print();
                                }

                            }
                        });
                    }

在php中:

$lastID = $_GET['lastID'];
$sql = "select * from orders where id > ".$lastID." ORDER BY id DESC";

相关问题