Trill Designs: How Many Users Online - Trill Designs

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

How Many Users Online

#1 User is offline   Jaan Icon

  • Site Admin
  • Icon
  • Group: Administrators
  • Posts: 85
  • Joined: 23-November 09
  • LocationEstonia

Posted 25 January 2010 - 09:12 PM

Hey!

Now I'll show you how to see how many users are browsing your website. There are many ways to display it but I'm trying to keep it simple and clean.

First of all we have to create a two tables to your database.

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


It will create two tables. One is session and other is time. They are going to store our information.

Now it's time for PHP. Let's create our main variables
<?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("<font style='color:red'><b>Can not connect:</b> ".mysql_error()."</font>");
mysql_select_db("$db_name")or die("<font style='color:red'><b>Can not select the database:</b> ".mysql_error()."</font>");


$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: <b>".$usersonline."</b> users online";


$usersonline = mysql_num_rows($result3); - It will get the number of records in columns
echo "There are: <b>".$usersonline."</b> 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:

<?php
session_start();
$ses = session_id();
$time = time();
$timech=$time-300; 

$host = "localhost";
$username = "";
$password = "";
$dbname = "";

mysql_connect("$host", "$username", "$password")or die("<font style='color:red'><b>Can not connect:</b> ".mysql_error()."</font>");
mysql_select_db("$db_name")or die("<font style='color:red'><b>Can not select the database:</b> ".mysql_error()."</font>");  

$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: <b>".$usersonline."</b> users online";  

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

0

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users