Php 自动刷新Mysql表中的DIV内容-一次一个

Php 自动刷新Mysql表中的DIV内容-一次一个,php,jquery,mysql,Php,Jquery,Mysql,我需要每隔5秒自动刷新mysql数据表中的内容,但一次只显示一条不同的记录,以无休止的循环遍历每条记录 我加载news.php,它有以下js: <script type="text/javascript"> var auto_refresh = setInterval(function () { $('#canvas').load('content.php').fadein("medium");}, 5000); // refresh every 5 seconds

我需要每隔5秒自动刷新mysql数据表中的内容,但一次只显示一条不同的记录,以无休止的循环遍历每条记录

我加载news.php,它有以下js:

<script type="text/javascript">
var auto_refresh = setInterval(function () {
    $('#canvas').load('content.php').fadein("medium");}, 5000);
     // refresh every 5 seconds
</script>
以及在页面上回响的字段

我知道你必须创建一个计数器,每次都带回一张不同的记录,但我现在很难做到这一点


如果您的表有一个自动递增字段,比如id,那就多谢了。您首先要传递page.php和id为0,因此它会获取大于0的自动递增字段,然后通过jquery将该字段id传递回。当您第二次发送它时,它将不会被包括在内,因为您将使用大于号

if num_rows==0检查是否有字段,如果没有,则它将假定您发送给它的自动增量字段是最后一个字段,然后它将使用第一个自动增量值运行sql语句

<?php
// page.php
$id = (int) $_REQUEST['id'];
$sq = "select * from news where id > ".$id." order by id asc limit 0,1";
$qu = $con->query($sq);

if ($qu->num_rows == 0) {
    $sq2 = "select * from news order by id asc limit 0,1";
    $qu2 = $con->query($s2);
    while ($fe = $qu->fetch_assoc()) {
       echo $fe['id']."|".$fe['content'];
    }
} else {
    while ($fe = $qu->fetch_assoc()) {
       echo $fe['id']."|".$fe['content'];
    }
}
?>

<script>
$(document).ready(function() {
    setInterval(function(){ updateNews(); }, 5000);
});
function updateNews() {
    var id = 0;
    id = $("#hidden-id").val();        

    $.get("page.php?id=" + id, function(data) {
       // I use $.get so that I can split the data that it returns before populating 
       // the #canvas. This way we can strip off the first part which is the auto 
       // increment
       var ref = data.split('|');
       $("#hidden-id").val(ref[0]);
       $("#canvas").html(ref[1]);
    });
}
</script>

但是一次只显示一个不同的记录,这意味着什么呢?您是说要执行SELECT DISTINCT操作,以便返回的行永远不会重复?还是只想从查询中返回一行?或者,您是否需要处理现有偏移量值,以便不总是将所有记录都取回?需要澄清。如果可以,你应该。已在PHP7中删除。了解使用PDO的语句,并考虑使用PDO。是否每个人都看到同一个记录同时显示?OHODGOOD -不,一次记录一个序列。每次后退1行,与上一行不同。当记录结束时,再次开始。RamRaider-否。循环应该针对每个用户。
<?php
// page.php
$id = (int) $_REQUEST['id'];
$sq = "select * from news where id > ".$id." order by id asc limit 0,1";
$qu = $con->query($sq);

if ($qu->num_rows == 0) {
    $sq2 = "select * from news order by id asc limit 0,1";
    $qu2 = $con->query($s2);
    while ($fe = $qu->fetch_assoc()) {
       echo $fe['id']."|".$fe['content'];
    }
} else {
    while ($fe = $qu->fetch_assoc()) {
       echo $fe['id']."|".$fe['content'];
    }
}
?>

<script>
$(document).ready(function() {
    setInterval(function(){ updateNews(); }, 5000);
});
function updateNews() {
    var id = 0;
    id = $("#hidden-id").val();        

    $.get("page.php?id=" + id, function(data) {
       // I use $.get so that I can split the data that it returns before populating 
       // the #canvas. This way we can strip off the first part which is the auto 
       // increment
       var ref = data.split('|');
       $("#hidden-id").val(ref[0]);
       $("#canvas").html(ref[1]);
    });
}
</script>