【www.gdgbn.com--php与数据库】

现在我将告诉你如何看到有多少用户在浏览您的网站。有许多方法来显示它,但我试图保持它简单,干净。

首先,我们必须创建两个表,您的数据库教程。

CREATE TABLE `uonline` (
  `session` varchar(100) NOT NULL,
  `time` int(5) NOT NULL default "0"
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

这将创建两个表。一个是会议和其他的是时间。他们将我们的信息存储。

现在是PHP的时间。让我们一起创造我们的主要变数

php教程
session_start();
$ses = session_id();
$time = time();
$timech=$time-300;
session_start(); - This wills start a session
$ses = session_id(); - This will get our session"s ID
$time = time(); - This will get the time
$timech=$time-300; - This will set our time to 5min

Now we have to connect to the database:


// Declare SQL login info
$host = "localhost";
$username = "";
$password = "";
$dbname = "";
 
// Now we are going to connect to our database
mysql教程_connect("$host", "$username", "$password")or die("Can not connect: ".mysql_error()."");
mysql_select_db("$db_name")or die("Can not select the database: ".mysql_error()."");

$host = "localhost"; - Your SQL"s host name, usually it"s "localhost"
$username = ""; - Your MySQL username
$password = ""; - Your MySQL password
$dbname = ""; - Your database"s name

Now we have to look for existing sessions and get the number of sessions.


$result = mysql_query("SELECT * FROM uonline WHERE session="$ses"");
$num = mysql_num_rows($result); 

$result = mysql_query("SELECT * FROM uonline WHERE session="$ses""); - This will select all info from session column where it"s value is "$ses"
$num = mysql_num_rows($result); - It will tell us how many active records are in session column


if($num == "0"){
$result1 = mysql_query("INSERT INTO uonline (session, time)VALUES("$ses", "$time")");
}else{
$result2 = mysql_query("UPDATE uonline SET time="$time" WHERE session = "$ses"");
}

if($num=="0"){ - If there"s no records in session column then we must insert some records
$result1 = mysql_query("INSERT INTO uonline (session, time)VALUES("$ses", "$time")"); - Inserts session"s ID and time to database
}else{ - But if there was more records than 0, let"s update their records
$result2 = mysql_query("UPDATE uonline SET time="$time" WHERE session = "$ses""); - Updates existing records
} - Ends If statement

Now let"s find our info again from the columns:


$result3 = mysql_query("SELECT * FROM uonline");

$result3 = mysql_query("SELECT * FROM uonline"); - This will get all info from uonline table

It"s time for showing how many users are looking your site:


$usersonline = mysql_num_rows($result3);
echo "There are: ".$usersonline." users online";

$usersonline = mysql_num_rows($result3); - It will get the number of records in columns
echo "There are: ".$usersonline." users online"; - This will show how many users are on your site

When the users have left, you must delete their records from database.


mysql_query("DELETE FROM uonline WHERE time<$timech");
?>

mysql_query("DELETE FROM uonline WHERE time<$timech"); - Deletes records from database when 5min has been thru.

And here"s the full code:


session_start();
$ses = session_id();
$time = time();
$timech=$time-300; 
 
$host = "localhost";
$username = "";
$password = "";
$dbname = "";
 
mysql_connect("$host", "$username", "$password")or die("Can not connect: ".mysql_error()."");
mysql_select_db("$db_name")or die("Can not select the database: ".mysql_error()."");  
 
$result = mysql_query("SELECT * FROM uonline WHERE session="$ses"");
$num = mysql_num_rows($result); 
 
if($num == "0"){
$result1 = mysql_query("INSERT INTO uonline (session, time)VALUES("$ses", "$time")");
}else{
$result2 = mysql_query("UPDATE uonline SET time="$time" WHERE session = "$ses"");

 
$result3 = mysql_query("SELECT * FROM uonline"); 
 
$usersonline = mysql_num_rows($result3);
echo "There are: ".$usersonline." users online";  
 
mysql_query("DELETE FROM uonline WHERE time<$timech");
?>

本文来源:http://www.gdgbn.com/jiaocheng/23675/