Home > Backend Development > PHP Tutorial > 关于PHP中的while跟sleep的mysql查询有关问题

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

WBOY
Release: 2016-06-13 11:53:36
Original
970 people have browsed it

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

<br />$sql="select * from table where id='1' ";<br />$num = mysql_num_rows(_query($sql));<br />while (true){      <br />   // $num2 = mysql_num_rows(_query($sql));<br /><br />//这个地方怎么写啊*******<br />    sleep(1)<br /><br /><br />   //若得到数据则马上返回数据给客服端,并结束本次请求      <br />    <br />    if(数据库有新记录){      <br />alert('有新记录');     <br />        exit();      <br />    }      <br />          <br />    //服务器($_POST['time']*0.5)秒后告诉客服端无数据      <br />    if(没有新记录){      <br />  alert('没有更新记录');          <br />        exit();      <br />    }   <br /><br />}<br />
Copy after login


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

我是采用的是ajax长连接,长轮询查询的
------解决方案--------------------
不要用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到客户端,所以用户会长期处于等待状态,这样做不好.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template