如果在数据库中添加新记录,则从数据库中检索数据

时间:2011-12-16 20:07:19

标签: php jquery ajax

您好我已经完成了Long轮询,websockets和APE,Ajax推送,Ajax Pull。由于现在万维网上还没有引入websockets技术。我以为我会使用普通的setInterval函数来检查数据库。这是一个聊天应用程序,我的代码: -

Home.php 上的

的Javascript

 $(document).ready(function(){

setInterval(function(){

var id = $id;  // this is the id of the last message inserted in the database

var data = 'id='+id;

$.ajax({

type : "POST",
url : "check.php",
data : data,
success : function(data){

if(data)
{
$(".comments").append(data);
}

}


});


},1000);

check.php php code

$id = $_POST['id'];

$get = mysql_query("SELECT * FROM messages WHERE id>'$id' ORDER BY id DESC");
$num2 = mysql_num_rows($get);
$get2 = mysql_fetch_assoc($get);
$id = $get2['id'];

if($num2!=0)
{


$username = $get2['username'];
$a = mysql_query("SELECT * FROM people WHERE username='$username'");
  $n = mysql_num_rows($a);
  $b = mysql_fetch_assoc($a);

   $file = $b['filename'];
   $pic = "<img src=\"images/" .$file. "\" width=\"40\" height=\"40\">";
 $name = $get2['fullname'];
$message = $get2['message'];

echo $pic.$message."<br/>";
}
else
{
}

如果在数据库中插入了新记录,则它正确地回显,但它不会更新home.php页面中的$ id,因此它会一次又一次地发送旧ID,并且会一次又一次地附加注释。 / p>

我想要的是什么。每个间隔。应该更新home.php的$ id,以便它只将当前的消息id发送到check.php页面。

1 个答案:

答案 0 :(得分:0)

我猜您发布的第一个代码位于 home.php 的模板中,而 $ id 则会替换为最后一个ID的实际数字

这是第一次使用PHP处理页面时,但是一旦在用户计算机上下载,您只需要依赖JavaScript ... 我不确定您从check.php接收数据的形式,但您需要执行类似

的操作
id = data.id
data = 'id='+id;