【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");
?>