ArticlesBase.com - Free Articles Directory
Free Online Articles Directory
08.10.2008 Sign In Register Hello Guest
Email:
Password:
Remember Me 
forgot your password?


Self-taught Php/mysql: a Simple Page Counter Tutorial

Author: Bill Hamilton Author Ranking Blue | Posted: 04-03-2008 | Comments: 0 | Views: 58 | Rating:  (52) Article Popularity - Blue (?) Got a Question? Ask.
Sign Up Now!

Self-Taught PHP/MYSQL: a simple Page Counter

This article is a short introduction to PHP and MySQL using the example of a simple page counter. I will illustrate creating the database in MySQL, connecting to the database from the PHP script, querying the database for information, displaying the information in a web page, and writing the information back to the database. As always, the fastest way to master the process is to jump right in with the code, look it over and use it. We’ll make a MySQL database to store the page names and the number of page views, and use PHP to increment and display the count on a web page. First here is all of the code, and then I’ll go over it in detail:

This goes into a file called “pagecounter.php”



You’ll no doubt have noticed that the script “includes” another, so without further delay here is the “connect.php” file:



The pagecounter.php script needs a database to operate on. Just briefly, here’s how to create it.

Creating the database:

Log in to MySQL at your Unix prompt (which might be #):

# mysql –uYourUserName –pYourPassword

At the MySQL prompt enter these commands:

mysql> create database pages;

mysql> use pages;

mysql> create table counter (pagename varchar(60),hits int, stamp timestamp);

mysql> quit;

Naturally you can create the database and table with utilities or web-based interfaces, but doesn’t it seem simpler to just enter three commands?

If you just wanted some code for a simple counter, this is all you need. Put this text into an SHTML web page, or this text into a php web page, copy the above two files into the same directory, and you’re done.

The first thing you’ll have noticed about the scripts are the dollar signs ($). All variables in PHP scripts start with a $. Anything starting with a $ is a variable. Instructions - statements and functions – end with a semicolon (;). starts the script and it ends with . When your script is hosed, look at these first.

Details about the pagecounter.php script

Line 1

include_once "connect.php”;

The first line in the script is just what it appears to be. It includes whatever is in the file “connect.php”. The “_once” means that it’s only included once, even if you had the line twice in the script. The reason I’ve separated it out is that it’s all the connection stuff to the database. All the php/Mysql scripts will need it, it’s always the same, so you can just put it by itself and use the include function.

Line 2

$pagename=$_SERVER["REQUEST_URI"];

The next line creates a variable called $pagename and sets the value to a special pre-defined variable $_SERVER["REQUEST_URI"]. The brackets [ ] are used by arrays in php. $_SERVER is a pre-defined array of headers and paths. This particular one is the name of the file that accesses the script, i.e., the name of the page that the counter is in.

Line 3

$result=mysql_query("Select * from counter where pagename='$pagename'");

All the database work is done with mysql_query, which sends an SQL command string to MySQL, after you’ve already logged in and connected to the database with the connect.php script. "Select * from counter where pagename='$pagename'" replaces $pagename with its value. But there’s a quirk here – the single quotes have to be inside the double quotes. If I had it the other way around, with the single quotes outside, the query would be for the text “$pagename” instead of the value. $result is the result set. It can be any name but in tutorial scripts it’s always $result, so it is here.

Line 4

if (mysql_num_rows($result)==0){

The fourth line is the php version of “if-then”. It simply checks whether there are any results from the query in line 3. The syntax is representative of php coding in general so it’s a good place to start. The curly brackets { } are used to group instructions. The curved brackets ( ) are used for the “if” condition. Everything inside the curly brackets will be executed if the “if” condition is true. PHP uses double equals == for comparison; if I had used only a single equal sign it would try to set mysql_num_rows to 0, which wouldn’t work for our purposes. A missing equal sign is the second thing to look for when your script is hosed and it’s not missing a $ or ;.

Line 5

mysql_query("insert into counter (pagename,hits) values ('$pagename','0')"); }

Inside the brackets, which only happens when line 4 finds no records of the page we searched for, the instruction creates a new record with the page’s name and zero for the hit count. Although mysql_query is a function, it doesn’t necessarily need a variable $result= in front of it. That’s optional in PHP if you don’t care about the return value.

The closing curly bracket } from the “if” statement comes here, since we only needed one statement to create our record.

Line 6

$count=mysql_result($result, 0, "hits");

mysql_result fetches the actual data from the result set. You specify the result set (from mysql_query), the row number (0), and the column name (“hits”). This is a little confusing at first since to get here took four steps: 1) log into MySQL, 2) connect to the database, 3) select data from the table, and 4) fetch a particular piece of the data. Putting the repetitive first two steps into an include file where you can more or less forget about them makes it more intuitive: use SQL to select data with mysql_query, and then retrieve data with mysql_result.

Line 7

$count=$count + 1;

Just adds one to the count variable. This is the count of the page views of the page requesting the script.

Line 8

mysql_query ("update counter set hits=$count where pagename='$pagename'");

As with Line 5 we send an SQL command directly to MySQL. This one updates the count for just the page matching the variable $pagename.

Line 9

echo "Page Count: ".$count;

The echo function writes text to a web page, in this case the text “Page Count: “ followed by whatever value is in $count. The period in between is the PHP concatenation operator: it simply adds the two strings together. Echo sees it as one string and outputs it.

Details about the connect.php script:

All this script does is connect to the MySQL server and select the Database.

Line 1

$host="localhost";$user="YourUserName";$password="YourPassword";$dbase="pages";

These are the inputs for the connect and select_db functions. Naturally you can insert the values into the functions on line 3 and 4 and eliminate this line, but it’s simpler to change later (when you re-use this code for example) if you just list them out at the top. The host and dbase won’t need to be changed in this example. The user and password are specific to your MySQL setup. As shown here you can put as many statements on one line as you want; PHP doesn’t care.

Line 2

// change the user and password to your MySQL user and password

The double slashes // denote a comment line that is ignored by php. Each comment line needs the slashes.

Line 3

$connect = mysql_connect($host,$user,$password);

You log into your MySQL with the mysql_connect command. You would change the host from “localhost” to the database server if you were accessing MySQL from another server, provided you’ve set up the access rights for the specified user/

Line 4

mysql_select_db($dbase,$connect);

Since we can have multiple databases in the MySQL server, we have to select one before sending SQL statements to it. As I mentioned earlier, this part is repetitive, and once it’s in this file and working you can forget about it.

In this tutorial we’ve examined a simple but functional web page counter implemented with PHP/MySQL. We examined the basic syntax of PHP statements and variables, the PHP “include” function and “if” control function, and the fundamental PHP MySQL functions mysql_connect, mysql_select_db, mysql_query, mysql_num_rows, and mysql_result. For further reference the reader should bookmark http://dev.mysql.com/doc/refman/6.0/en/index.html and http://us.php.net/manual/en/funcref.php .

Bill Hamilton is a former Database Administrator for United News and Media, and VNU inc. He currently operates several php/mysql driven websites including Gemstones and Beads

Rate this Article: Current: 5 / 5 stars - 1 vote(s).

Article Source: http://www.articlesbase.com/programming-articles/selftaught-phpmysql-a-simple-page-counter-tutorial-349813.html

Print this Article Print article   Email to a Friend Send to friend   Publish this Article on your Website Publish this Article   Send Author Feedback Author feedback  
Bill HamiltonAbout the Author:

Bill Hamilton is a former Database Administrator for United News and Media, and VNU inc. He currently operates several php/mysql driven websites including Gemstones and Beads

Submitting articles has become one of the most popular means of generating quality backlinks and targeted traffic to your website. Join us today - It's Free!

Article Comments

Comment on this article Comment on this article
Your Name
Your Email:
Comment Body
Enter Validation Code: Captcha


Got a Question? Ask.

Ask the community a question about this article:

Frequently Asked Questions

How to wirte a search message?
By: harimca | 19-09-2008
how to wirte a search message?

Due to some reason i have selected safe mode ...
By: zuber | 14-09-2008
due to some reason i have selected safe mode during starting of my computer, now i want to change the mode ,means from safe mode to normal mode. what is the procedure. my pc operating software is window vista

How do I get in touch with someone that will help ...
By: mcleroy | 16-07-2008
how do I get in touch with someone that will help me with having my Aunt's, LcDr. Thelma Fae Maxwell, information regarding her service in the Navy from the beginning of here career until she retired?  I have letters, pictures, all her information, plus her flag which was on her casket, metals, picture of her in her whites, etc.  All the material is in a very large scrapbook along with many, many pictrures.  They are in chronological order, to the best of my ability.  Our family wishes all the items be placed in the Womens' Navy Musuem in Washington, D.C.  Please reply or let me know what I must do.  Thank you.  Sandra McLeroy

Side effects of estro vital nutrients
By: kim barber | 15-07-2008
does estro vital nutrients make you gain weight?

Acive directory
By: dixit | 29-05-2008
import active directory attribute values to MySql database

What is the best PHP framework?
By: kozkan | 29-04-2008
What is the best PHP framework?

Q&A Powered by:
Powered by Yedda 

Latest Programming Articles

How to Succeed as a Abap Developer or Sap Abap Development Manager
By: Deepak Mandrekar | 05/10/2008
For anyone working on an SAP implementation project, SAP implementation partners or consulting companies, you very well know that SAP ABAP skills are highly valued within the SAP industry. SAP ABAP developer supports implementation projects with customer specific enhancements, building reports to migrate data from legacy system into the SAP system, build web interfaces using Java Connectors (JCo) or Enterprise Services. Plus if you are creating enterprise services or integrating other third part

E-commerce and Web Portal Development in Vietnam
By: Daniel Jowssey | 03/10/2008
VIETNAM, owing to its superior intellectual capital has emerged as the ultimate destination for low cost e-commerce and web portal development. Companies from all across the globe have found the quality of work delivered by VIETNAMn vendors to be far superior in quality as compared to vendors in their home countries. Another advantage is its location in a different time zone. Vendors based in VIETNAM can respond to the needs of Western clients faster than vendors based in the home country also.

Php Web Development Advantages
By: Rightway Solution | 01/10/2008
PHP (PHP: Hypertext Preprocessor) is a powerful server-side scripting language for creating dynamic and interactive websites. PHP is a popular and widely used programming language used for website development.

Using Comments in Your Programming Source Code by Nicholas Brown
By: Nicholas Brown | 30/09/2008
Save time and money by adding comments to your source code.

Data Transfer Methods of Cnc
By: Gargi Nath | 28/09/2008
A CNC machine cannot function without a program. And a program cannot make its way to the machine without an effective data transfer system. So, what are the methods of data transfer and how effective are they in conveying data from one point to the next?

Software Development Life Cycle Models
By: Paulita C. Lobrin | 27/09/2008
System Development Life Cycle (SDLC) models help in the complete development of a system, right from the conceptual stage to the customer delivery stage. SDLC is very useful if one has a complicated system to build. SDLC is the overall process of developing information systems through a multi-step process, from investigation of initial requirements to analysis, design, implementation and maintenance.

Types of Softwares
By: pntglobal | 27/09/2008
Computer software is a general term used to describe a collection of computer programs, procedures and documentation that perform some task on a computer system. The term includes application software such as word processors which perform productive tasks for users, system software such as operating systems, which interface with hardware to provide the necessary services for application software, and middleware which controls and co-ordinates distributed systems.

Effetive Use of Pointers
By: varadarajan t | 27/09/2008
pointers in c are one of the most striking features of c language. it has several advantages. it can save memory space effectively. using pointers we can handle array of data effectively. this article shows a basic idea of pointers and it usage.

More from Bill Hamilton

Self-taught Php: String Functions Quick Start
By: Bill Hamilton | 11/06/2008 | Programming
A quick start reference for programmers who want to jump into PHP coding without wading through manuals and tutorials. It is strictly a first look with an abbreviated reference to the must-know string functions. The article provides basic string functions, process control and operators.

Article Categories






Give Feedback

Sign up for our email newsletter

Receive updates, enter your email below