【问题标题】:refreshing page until new data added to database刷新页面,直到新数据添加到数据库
【发布时间】:2014-07-14 05:25:03
【问题描述】:

我想用 SetInterval() 每隔几秒刷新一个 PHP 页面;如果将数据添加到数据库,它将停止刷新页面。所以,当它刷新我的 PHP 页面时,它总是检查是否有新数据添加到数据库中..

我正在尝试使用这种逻辑,但它不起作用......

$query = mysql_num_rows(SELECT id_example FROM table_example);
$a = count($query);
$b = $a+1;

IF($a==$b)
{
Stop_refreshing_the_page;
}
else
{
Refresh_with_setInterval();
}

有没有人可以建议我更好的逻辑/算法/代码示例来做到这一点??

【问题讨论】:

    标签: php mysql database setinterval


    【解决方案1】:

    哪个部分不工作?

    此外,如果您每次都刷新整个页面,那么 setInterval 可能不是您想要的 - 似乎一个简单的 setTimeout 和重新加载就可以解决问题,然后当您有 db 结果时根本不打印它。

    为 OP 编辑​​

    我认为这不是有效的 PHP,但你应该明白这一点。

    $previous_count = $_GET['previous_count'];
    $query = mysql_num_rows(SELECT id_example FROM table_example);
    $result_count = count($query);
    
    if ($previous_count == $result_count)
    {
        // this should render some javascript on the page including $result_count
    }
    

    生成的 javascript 将类似于:

    <script type='text/javascript'>
        window.setTimeout( function(){
            window.location = window.location.pathname + "?previous_count=<?php echo $previous_count; ?>";
        }, 2000);
    </script>
    

    【讨论】:

    • 如果数据库中有新数据,$a 的值将始终更新,$a 永远不会与 $b 具有相同的值。所以重新加载过程不会停止......
    • 您可以将 a 的旧值作为 GET 参数发送,PHP 页面可以在决定呈现另一个 setTimeout 之前对其进行检查。
    • 我认为这是一个好主意,但你能像我在上面的问题中写的那样写出你刚才告诉我的逻辑,这样我就更容易理解你的想法......
    • 非常感谢...我真的没有帮助:)
    • @user3581186 - 很高兴它成功了。考虑接受答案。
    猜你喜欢
    • 2014-11-24
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多