每秒轮询一次数据库,没有页面刷新;如果数据库值已更改,则重定向页面

时间:2011-11-17 03:52:21

标签: php mysql ajax

我已经设置了一系列页面,其显示顺序取决于来自公共数据库的变化变量。每个页面在加载时向数据库发布一个值(例如:页面A发布值1),然后开始倒计时。

当另一台机器上的用户点击另一个页面时,该值会更新(页面B发布值2)。

我想这样做,以便页面A可以读取值的变化,同时它还在倒计时,如果没有刷新,可以将自己重定向到另一个页面,让我们说C.

由于我已经有一个PHP脚本调用数据库来更新值,所以我不能重复该调用而不将B发布的值(2)更改回(1)。

我知道我需要使用AJAX和setinterval(),我已经浏览了很多很多例子,但我似乎无法找到让页面A检索值并激活不重定向的方法包括以某种方式打印值(我实际上没有在页面上显示值)或构造div(如HTML - Change\Update page contents without refreshing\reloading the page中所示)。

我的想法是我需要创建一个外部PHP文件来查询数据库并使用AJAX重复调用它并以某种方式将更新后的值传递给刷新函数。

我很新,有点笨拙,所以任何建议都会受到赞赏。

这是我用来初始调用数据库(只有一行)并更新值的代码。

<?php

mysql_connect("xxxx", "xxxx", "xxxx") or die;

mysql_select_db("xxxx");

$result = mysql_query("SELECT * FROM database");
$row = mysql_fetch_assoc($result);
$value = $row ['value'];

if ($value == "0"){

mysql_query("UPDATE gym SET value = '1' WHERE id = '1'");           

?>

1 个答案:

答案 0 :(得分:0)

  1. 设置一个额外的PHP文件,该文件将查询数据库并返回查询的值。
  2. 使用Javascript的setInterval重复一个功能,该功能可以获取上一步中创建的页面的值。在此函数中,检查值是什么。如果值为1,则不要执行任何操作。如果是其他任何内容,请修改window.location值以转到下一页。