我用這個代碼與最新的時間來更新用戶數據庫,當用戶處於聯機:選擇在線用戶數據庫與MySQL命令
$postTime = $user_array['last_online'];
if ($postTime == ""){
$minutes = 11;
} else {
$now = time();
$seconds = $now - $postTime; // $seconds now contains seconds since post time
$minutes = ceil($seconds/60); // minutes since post time
//$hours = ceil($minutes/60); //hours
}
if ($minutes > 10) {
$con = db_connect2();
$sql = "UPDATE tbl
SET last_online='".strtotime("now")."'
WHERE userid='" .mysql_real_escape_string($_SESSION['userid']). "'";
mysql_select_db('db',$con);
$result = mysql_query($sql,$con);
}
我不知道如果多數民衆贊成的最佳方式做到這一點,但我認爲它有效。現在我想要使用mysql命令獲取在過去10分鐘內處於活動狀態的所有用戶。這可能嗎。像
$time = time() - 600;
$online = $conn->query("select username
from tbl
where last_online < $time");
你的代碼有什麼問題? – 2010-11-06 07:10:45
它在10分鐘前獲得了在線用戶,這不是我們想要的結果(我們希望用戶在線時間不到10分鐘)。看到我的答案。 – defines 2010-11-10 01:25:47
對於'$ online'查詢,Dustin Fineout在下面指出了'<' ->'> ='。也就是說,不是'... last_online <$ time ...'使用'... last_online> = $ time ...'。 – 2010-11-11 08:06:04