看板 PHP 關於我們 聯絡資訊
請問各位前輩, 小弟想寫一個「多人版」的線上使用者系統.. (就是看有幾個人同時在線上,不同的站分開計算) 目前想到的方法是 建立一個 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
LPH66:個人感覺一個頁面四個查詢已經不錯了... 09/04 23:13
roga:謝謝您 09/05 00:23