私は現在、このphpコードを使用して、現在オンラインのユーザー数を数えています:
$session_id = session_id();
$time_stamp = time();
$time_limit = $time_stamp - 300; // We give the session only 5 minutes if it exists
$result = $this->select("SELECT * FROM `online_visitors` WHERE `session_id`='$session_id' LIMIT 1");
if (!mysql_num_rows($result)) {
$tb_col[0] = "visitor_ip";
$tb_col[1] = "country";
$tb_col[2] = "session_id";
$tb_col[3] = "time_stamp";
$tb_col[4] = "last_time_stamp";
$tb_data[0] = "'" . $this->visitor_ip . "'";
$tb_data[1] = "'" . $this->visitor_country . "'";
$tb_data[2] = "'" . $session_id . "'";
$tb_data[3] = "'" . $time_stamp . "'";
$tb_data[4] = "'" . $time_stamp . "'";
$this->insert("`online_visitors`", $tb_col, $tb_data);
} else {
$this->update("`online_visitors`", "`visitor_ip`='$this->visitor_ip', `country`='$this->visitor_country', `last_time_stamp`='$time_stamp'", "`session_id`='$session_id'");
}
$this->delete("`online_visitors`", "`last_time_stamp`<'$time_limit'");
ただし、リアルタイムで更新されません。30秒ごとにユーザー数をチェックしたい。また、このテーブルを jQuery ハートビート関数に接続して、現在オンラインになっているユーザーの数をより確実に把握したい場合もあります。
私はこれに適切に取り組んでいますか?jQueryでこれを達成する方法に関するヒントはありますか(私はあまり得意ではありません)? または、私のアプローチを改善できますか?
PHPコードも改善したい