我無法爲「在線用戶」功能設計mysql表。 Google搜索,但無法找到具體的解決方案。任何幫助,將不勝感激。謝謝。如何在FB中實現「用戶在線」功能?
0
A
回答
3
一種可能性是將每個用戶的最後一個動作保存在數據庫中(如時間戳),並說「在過去的2分鐘內執行某些動作的每個用戶都在線」。
如果你用ajax更新了這個例子,你將能夠追蹤誰關閉了頁面,誰不關閉。
2
存儲會話的DB,存儲 user_ID的作爲 會話表的額外領域。開放 會議
但要注意的是會話不是這是真正的網站上用戶的100%表示
查詢會話表。 (會話超時)。
0
0
你可以以這樣的事:
與創建tblOnline表以下字段
id int not null auto_increment primary key
colSession text
colStamp int
當有人登錄你爲他們創建一個會話變量:
session_start();
$_SESSION['online'] = md5(uniqid(rand(), true)); // Create a unique string
存放在tblOnline唯一的會話:
$stamp = time();
mysql_query('INSERT INTO tblOnline (colSession,colStamp) VALUES ('.$_SESSION['online'].','.$stamp.')');
當他們做一些事情(比如,頁面重新加載)用當前時間戳更新colStamp:
$now = time();
mysql_query('UPDATE tblOnline SET colStamp = '.$now.' WHERE colSession = '.$_SESSION['online'].'');
要獲得所有的在線用戶做這樣的事情:從數據庫
$timecheck = time()-(60*5); // 5 minutes back
$rs = mysql_query('SELECT * FROM tblOnline WHERE Stamp > '.$timecheck.'');
$num = mysql_num_rows($rs);
echo "There are: ".$num." users online right now!";
清理舊會話數據不時地(上當然colStamp匹配):
$timeclean = time()-(60*60); // One hour back
mysql_query('DELETE FROM tblOnline WHERE Stamp < '.$timeclean.'');
相關問題
- 1. 如何在PHP中實現「誰在線」功能?
- 2. 如何在在線詞典中實現音頻(pronounciation)功能?
- 3. 如何通過用戶功能在Typo3中實現多連接?
- 4. 如何在Cucumber中實現BeforeSuite功能
- 5. 如何在Flex中實現AJAX功能
- 6. 如何在Typo3中實現新功能?
- 7. 如何在jquerymobile中實現AutoComplete功能?
- 8. 如何在MySQL中實現initcap功能?
- 9. 功能如何do_raw_spin_lock在Linux中實現
- 10. 如何在PHP中實現此功能?
- 11. 如何在Odoo中實現此功能?
- 12. 如何在clisp中實現「doc」功能?
- 13. MVC - 實現成員的在線功能
- 14. 如何在方案實現此功能
- 15. 如何實現功能的createCookie在JavaScript
- 16. 如何使用用戶功能在neo4j中實現自動增量
- 17. 在java中使用圖像圖標和使用JRadio按鈕實現在線/離線用戶(查看)功能
- 18. 如何實現MenuStrip功能?
- 19. 如何實現Wait()功能
- 20. 如何實現diff功能?
- 21. 如何實現該功能?
- 22. 如何在iOS iPad應用中實現費率應用功能
- 23. 您是如何在MVVM中成功實現MessageBox.Show()功能的?
- 24. 功能實現在Matlab
- 25. 如何在現有的BIOS中實現新功能?
- 26. 如何在Java中爲多個用戶實現multiquestion poll線程?
- 27. 如何在C#WinForms中實現應用按鈕功能?
- 28. 如何在Android中使用縮放功能實現GridView
- 29. 如何在ASP.NET MVC應用程序中實現搜索功能
- 30. 如何在瀏覽器中禁用JavaScript後實現javascript功能
你需要問具體的問題,而不是「爲我實現這個」 – BlackICE