[转]php统计在线人数

CREATE   TABLE  `user_online` ( 
`session` 
varchar ( 100 NOT   NULL   default   ''
`time` 
int ( 11 NOT   NULL   default   ' 0 '  
) TYPE
= MyISAM;

 

ExpandedBlockStart.gif 代码
<? php 
session_start (); 
$session = session_id (); 
$time = time (); 
 
// $time_check用于检测是否超时 
$time_check = $time - 600 // 设置时间10分钟=10*60秒 
 
$host = " localhost " //  主机名 
$username = " root " //  Mysql u用户名 
$password = " 123456 " //  Mysql 密码 
$db_name = " test " //  数据库 名 
$tbl_name = " user_online " //  表格名 
 
// 连接到服务器并选择数据库 

mysql_connect ( " $host " ,   " $username " ,   " $password " )or  die ( " 无法连接mysql服务 " ); 
mysql_select_db ( " $db_name " )or  die ( " 无法选择数据库 " ); 
 
$sql = " SELECT * FROM  $tbl_name  WHERE session=' $session ' "
$result = mysql_query ( $sql ); // 执行查询 
 
$count = mysql_num_rows ( $result ); 
 
// 检查指定的session是否存在,否则插入记录 
if ( $count == " 0 " ){ 
// 指定的session不存在 
$sql1 = " INSERT INTO  $tbl_name (session, time)VALUES(' $session ', ' $time ') "
$result1 = mysql_query ( $sql1 ); // 执行插入 
} else  { 
$sql2 = " UPDATE  $tbl_name  SET time=' $time ' WHERE session = ' $session ' "
$result2 = mysql_query ( $sql2 ); // 如果存在则修改连接时间 

 
$sql3 = " SELECT * FROM  $tbl_name "
$result3 = mysql_query ( $sql3 ); 
 
$count_user_online = mysql_num_rows ( $result3 ); // 统计session次数决定在线人数 
 
echo   " 在线人数 :  $count_user_online   "
 
// 删除超时的session记录,10分钟之前连接的用户视为超时过期 
$sql4 = " DELETE FROM  $tbl_name  WHERE time< $time_check "
$result4 = mysql_query ( $sql4 ); 
 
mysql_close (); 
 
//  打开多个浏览器页面测试下 
?>

 

轉自: http://hi.baidu.com/fanglor/blog/item/55eb194bbb9026fc83025c5c.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值