为了账号安全,请及时绑定邮箱和手机立即绑定

如何得知每個會員的上線狀態?拜託幫我優化一下代碼

如何得知每個會員的上線狀態?拜託幫我優化一下代碼

PHP
蝴蝶不菲 2019-03-10 07:21:19
我是硬寫的 $data = $pdo->query( "SELECT * FROM `user` " ); $data2 = $pdo->query( "SELECT * FROM `user` " ); 要顯示的地方 <? while($row = mysqli_fetch_array($data)){ ?> <div class="user-<?=$row['id'];?>"></div> jquery 與 後端這個是擺在網頁最下面,因為我的 jquery 託管在下方否則他會說找不到 $所以 <script src="jquery.js"></script> <? while($row = mysqli_fetch_array($data2)){ ?> <script> online_status_<?=$row['id'];?>(); function online_status_<?=$row['id'];?>(){ $('.user-<?=$row['id'];?>').load('/notify?type=xxx&id=<?=$row['id'];?>', function(data){ $('.user-<?=$row['id'];?>').html(data); }); setTimeout(online_status_<?=$row['id'];?>, 10000); }; </script> <?}?> 後端 $data = $pdo->query( "SELECT * FROM `user` WHERE `id` = '{$_GET['id']}' " ); if(mysqli_num_rows($data)!=0){ $row = mysqli_fetch_array($data); if(time()-$row['online_status'] > 20){ echo '離線'; }else{ echo '上線'; } } user 數據表有個 online_status 欄位我每十秒都會更新一次這個欄位,用時間戳。於是在這裡判斷是不是上下線 if(time()-$row['online_status'] > 20){這個方式奇蹟般的可以運行,但絕對不可行!但我想找大神幫我看看如何優化代碼!!
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

我已經解決了。。。

查看完整回答
反对 回复 2019-03-18
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

会员上线将状态改变,之后增加心跳检测!

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信