[閒聊] 線上使用者的作法..

看板PHP作者 (凝視)時間17年前 (2007/09/04 22:12), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/5 (看更多)
請問各位前輩, 小弟想寫一個「多人版」的線上使用者系統.. (就是看有幾個人同時在線上,不同的站分開計算) 目前想到的方法是 建立一個 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
文章代碼(AID): #16tMVBwg (PHP)
討論串 (同標題文章)
文章代碼(AID): #16tMVBwg (PHP)