วิธีการนับจำนวนผู้เยี่ยมชมเว็บไซต์ เมื่อมีการเปิดหน้าเพจเราจะทำการเก็บค่า วันเดือนปี, ip, ส่งไปบันทึกลงฐานข้อมูล เพื่อเอาไว้เช็คจำนวนการเปิดหน้าเพจ มีด้วยกัน 3แบบ 1. Open Page เช็คการเปิดหน้าเพจอย่างเดียวไม่สนใจว่าจะเป็น ip เดียวกันหรือคนละ ip นั่นคือจำนวนการอ่านในหน้าเพจแต่ละเพจนั่นเอง 2. Today เช็คจากจำนวน ip จะนับเฉพาะ ip ของวันปัจจุบันเท่านั้น ถ้าเป็น ip ที่ซ้ำกันนับให้แค่ 1 3. Total เช็คจากจำนวน ip ถ้าเป็น ip ที่ซ้ำกัน ไม่ว่าจะใช้คอมกี่เครื่องเปิดหน้าเพจ แต่ถ้าเป็น ip เดียวกันก็นับให้แค่ 1 เท่านั้น....
ขั้นตอนแรกท่านก็จะต้องสร้างฐานข้อมูลเพื่อทดสอบกันก่อน
SQL สร้างฐานข้อมูลเพื่อทดสอบ
CREATE TABLE `counter` ( `id_visit` int(11) NOT NULL AUTO_INCREMENT, `date_visit` varchar(30) NOT NULL DEFAULT '', `ip_visit` varchar(30) NOT NULL DEFAULT '', `visit` int(5) NOT NULL DEFAULT 0, PRIMARY KEY (`id_visit`) );
ขั้นตอนที่2 เก็บค่าต่างๆเพื่อบันทึกลงฐานข้อมูล ในส่วนนี้ท่านสามารถนำไปแปะไว้ตามเพจต่างๆได้ เพื่อเช็ค
จำนวนการอ่านในหน้าเพจนั่นๆ แต่ถ้าเพจของท่านเปิดลิงค์ด้วย id ท่านก็เก็บ id บันทึกลงไปด้วย
พอตอนนับเราก็อ้างถึง id นั้นๆไป ในส่วนของบทความนี้เป็นแบบเบสิกเท่านั้นครับ...
Code: สำหรับบันทึกข้อมูล
include 'config.php'; $date =date("d-m-Y"); $ip = $_SERVER['REMOTE_ADDR']; $sql="INSERT INTO counter(date_visit,ip_visit,visit)VALUES ('$date', '$ip', '1')"; mysql_query($sql); ?>
ขั้นตอนที่3 ส่วนที่1
1. Open Page เช็คการเปิดหน้าเพจอย่างเดียวไม่สนใจว่าจะเป็น ip เดียวกันหรือคนละ ip นั่นคือจำนวนการอ่านในหน้าเพจแต่ละเพจนั่นเอง Code:
<?php $today = date('d-m-Y'); $sql="Select count(ip_visit) as visit From counter" ; $result= mysql_query($sql); $row = mysql_fetch_array($result); $visit = $row[visit]; $id_visit = $row[id_vist]; $openpage = str_pad($visit,6,0,str_pad_left); //ทำเป็นเลข 6 หลักด้วยการเติมเลข // 0 ข้างซ้าย
ขั้นตอนที่3 ส่วนที่2
2. Today เช็คจากจำนวน ip จะนับเฉพาะ ip ของวันปัจจุบันเท่านั้น ถ้าเป็น ip ที่ซ้ำกันนับให้แค่ 1
Code:
$today = date('d-m-Y'); $sql="Select count(DISTINCT(ip_visit)) as visit From counter where date_visit = '$today'" ; $result= mysql_query($sql); $row = mysql_fetch_array($result); $visit = $row[visit]; $id_visit = $row[id_vist]; $today = str_pad($visit,6,0,str_pad_left);
ขั้นตอนที่3 ส่วนที่3
3. Total เช็คจากจำนวน ip ถ้าเป็น ip ที่ซ้ำกัน ไม่ว่าจะใช้คอมกี่เครื่องเปิดหน้าเพจ แต่ถ้าเป็น ip
เดียวกันก็นับให้แค่ 1 เท่านั้น....
Code:
$sql="Select count(DISTINCT(ip_visit)) as visit From counter"; $result= mysql_query($sql); $row = mysql_fetch_array($result); $visit = $row[visit]; $total = str_pad($visit,6,0,str_pad_left);
ขั้นตอนที่4
นำส่วนที่ต้องการมาแสดงผล
<div style="width:230px;"> <div style="border:1px solid #dddddd;padding:5px;background:#eeeeee;"> <div id="showcounter"> <center> <table> <tr><td>Open Page : </td> <td id="counter"bgcolor="#0252A1"><?=$openpage?></td></tr> <tr><td>Today : </td> <td id="counter"bgcolor="#1BAFD5"><?=$today?></td></tr> <tr><td>Total : </td> <td id="counter"bgcolor="#D96003"><?=$total?></td></tr> </table> </center> </div> </div> </div>
บทความนี้ขอจบเพียงเท่านี้ครับ.....
Code ที่เสร็จแล้ว
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> <style> #showcounter{border:1px solid #999999;background:#ADE8F7; padding:5px 9px 5px 5px;} #counter{letter-spacing: 3px;font-weight:bold;color:#ffffff;} td{padding:1px 5px 1px 5px;} </style> </head> <body> <?php include 'config.php'; $date =date("d-m-Y"); $ip = $_SERVER['REMOTE_ADDR']; $sql="INSERT INTO counter(date_visit,ip_visit,visit)VALUES ('$date', '$ip', '1')"; mysql_query($sql); /*----------------------OPEN PAGE----------------------*/ $today = date('d-m-Y'); $sql="Select count(ip_visit) as visit From counter" ; $result= mysql_query($sql); $row = mysql_fetch_array($result); $visit = $row[visit]; $id_visit = $row[id_vist]; $openpage = str_pad($visit,6,0,str_pad_left); /*----------------------TODAY BY IP----------------------*/ $today = date('d-m-Y'); $sql="Select count(DISTINCT(ip_visit)) as visit From counter where date_visit = '$today'" ; $result= mysql_query($sql); $row = mysql_fetch_array($result); $visit = $row[visit]; $id_visit = $row[id_vist]; $today = str_pad($visit,6,0,str_pad_left); /*----------------------TOTAL IP-----------------------*/ $sql="Select count(DISTINCT(ip_visit)) as visit From counter"; $result= mysql_query($sql); $row = mysql_fetch_array($result); $visit = $row[visit]; $total = str_pad($visit,6,0,str_pad_left); ?> <div style="width:230px;"> <div style="border:1px solid #dddddd;padding:5px;background:#eeeeee;"> <div id="showcounter"> <center> <table> <tr><td>Open Page : </td><td id="counter"bgcolor="#0252A1"> <?=$openpage?></td></tr> <tr><td>Today : </td><td id="counter"bgcolor="#1BAFD5"> <?=$today?></td></tr> <tr><td>Total : </td><td id="counter"bgcolor="#D96003"> <?=$total?></td></tr> </table> </center> </div> </div> </div> </body> </html>