請問各位前輩,
小弟想寫一個「多人版」的線上使用者系統..
(就是看有幾個人同時在線上,不同的站分開計算)
目前想到的方法是
建立一個 table 叫做 online 然後以下欄位:
serial - 序號.自動增加
id - 屬於哪個站台的紀錄
ip - 進入的使用者來源
lastvisit - 進入時間
首先刪除所有逾時的人 (假設 300 秒逾時)
$sql = "DELETE FROM online WHERE unix_timestamp() - lastvisit >=
300 AND id = '$id'";
然後使用者是否造訪過
$sql = "SELECT id FROM online WHERE ip = '$ip' AND id = '$id'";
計算 mysql_query($sql) 是為 0
如果是 0 的話,插入一筆新的資料:
$sql = "INSERT INTO online (id, ip, lastvisit) VALUES
('$id','$ip',unix_timestamp())";
如果不是 0 的話,把 time stamp 延後
$sql = "UPDATE users_online SET lastvisit = unix_timestamp()
WHERE id = '$id' AND ip = '$ip'";
最後計算該站台有多少人
$sql = "SELECT count(id) FROM online WHERE id='$id'";
但總覺得這樣查詢的筆數很多很雜,不知道有沒有更好效率的作法?
--
凝視著,卻看不見光景。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.223.207
推
09/04 23:13, , 1F
09/04 23:13, 1F
→
09/05 00:23, , 2F
09/05 00:23, 2F
討論串 (同標題文章)