วิธีการนับจำนวนผู้เยี่ยมชมเว็บไซต์ เมื่อมีการเปิดหน้าเพจเราจะทำการเก็บค่า วันเดือนปี, 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>
ลองแล้วไม่นับครับ
ตอบลบใครทำได้บ้างครับ ช่วยแนะนำหน่อยครับ ขอบพระคุณอย่างสูง
ตอบลบสร้างไฟล์ config.php แล้วเพิ่ม code การติดต่อฐานข้อมูลลงไปครับ
ตอบลบการสร้างไฟล์ config.php ทำใงครับ
ลบผมคัดลอกตามตัวอย่าง มันไม่ show ในเวปครับ แต่มีข้อมูลเข้าฐานข้อมูล ตรงบรรทัดที่ เขียนว่า $visit = $row[vist]; ถูกหรือผิดครับ
ตอบลบจะแก้ไขอย่างไร ให้ show ในเวปได้ครับ
ตอบลบผมแก้ไขนิดหน่อย แต่ยังไม่ได้ลองในเว็บจริงนะครับ ลองเอาไปดูก่อน
ตอบลบinclude "storescripts/connect_to_mysql.php";
$date = date("d/m/Y");
//echo $date;
$ip = $_SERVER['REMOTE_ADDR'];
$sql="INSERT INTO counter(id_visit,date_visit,ip_visit,visit) VALUES ('0', '$date', '$ip', '1');";
$upcounter= mysql_db_query($dbname,$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);
ปล. ส่วนของ include บรรทัดบน เปลี่ยนแปลงให้ติดต่อ database ของท่านเองนะครับ
ตอบลบขอบคุณครับเดี๋ยวอาทิตย์นี้ผมจะลองดู
ลบทำไมผมครีเอทตารางไม่ได้อ่ะครับ
ตอบลบการสร้างไฟล์ config.php ทำใงครับ บอกที
ตอบลบ