关于PHP中的while跟sleep的mysql查询问题

amu1433 2013-12-17 12:51:43

$sql="select * from table where id='1' ";
$num = mysql_num_rows(_query($sql));
while (true){
// $num2 = mysql_num_rows(_query($sql));

//这个地方怎么写啊*******
sleep(1)


//若得到数据则马上返回数据给客服端,并结束本次请求

if(数据库有新记录){
alert('有新记录');
exit();
}

//服务器($_POST['time']*0.5)秒后告诉客服端无数据
if(没有新记录){
alert('没有更新记录');
exit();
}

}


相实现功能通过无限循环查询数据库有没有更新新的记录;

我是采用的是ajax长连接,长轮询查询的
...全文
203 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
amu1433 2013-12-18
  • 打赏
  • 举报
回复
终于搞定了... 再顺便问个小问题 PHP模拟推送sleep PHP+ajax的每隔一秒请求一次哪个占内存多啊 区别优势在哪里啊 PHP+AJAX每隔一秒请求http://room.0917y.com/websystems/Chatroom/index.php PHP+sleep模拟推送的http://room.0917y.com/websystems/Chatroom2/index.php 测试账号admin 密码admin 或者demo demo
www_7di_net 2013-12-17
  • 打赏
  • 举报
回复
不要用sleep,因為那會讓你的程序半天無法顯示到客戶端,正確的作法應該是ajax每隔1秒查一下最新id即可. 思路如下: 1.初始狀況下本地的cookie內最新id的值為0 2.延遲1秒ajax请求服务器上数据库内的最新id,取得之后把最新id和和cookie内的id值作比较,如果两个值不同,则认为有新的纪录产生,此时执行你想要的操作.然后把新取得的id值赋值给cookie 3.再延迟一秒ajax再次请求,取得数据库内的最新id,用这个id和cookie的id作比较,如果两个值相同,则说明没有新的记录产生 思路如上,代码你自己写吧,记得sleep会导致你的程序执行结果很久不能push到客户端,所以用户会长期处于等待状态,这样做不好.

20,358

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧