[转]php统计在线人数

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

 

代码
<?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
posted @ 2010-09-16 12:18  Athrun  阅读(305)  评论(0编辑  收藏  举报