Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > บทความจากสมาชิก > PHP สร้าง Counter แบบละเอียด Today, Yesterday,This Month, Last Month, This Year, Last Year



 
Clound SSD Virtual Server

PHP สร้าง Counter แบบละเอียด Today, Yesterday,This Month, Last Month, This Year, Last Year

PHP Statistics สร้าง Counter แบบละเอียด โดยเก็บข้อมูลและแสดงแบบละเอียดเช่น Today, Yesterday,This Month, Last Month, This Year, Last Year (วันนี้ เมื่อวาน,เดือนนี้,เดือนก่อนนี้,ปีนี้,ปีก่อนนี้)


PHP Statistics


โดยใช้หมายเลข IP Address ในการนับจำนวนผู้เข้าชมอย่างแท้จริง สำหรับตัวอย่าง Script นี้ใช้การเก็บข้อมูลลงใน MySQL Database ประก่อบด้วย 2 ตารางหลัก ๆ คือ

Table Name
1. counter สำหรับตารางนี้เก็บข้อมูลรายวัน คือเก็บข้อมูลวันปัจจุบัน ว่ามีเข้ามาในเว็บไซต์กี่ IP และเมื่อขึ้นวันใหม่ข้อมูลจะถูก SUM และ Move ไว้ไปไว้ตาราง daily
2. daily สำหรับราตารางนี้จะเก็บข้อมูลในแต่ล่ะวันว่ามีกี่หมายเลข IP Address ที่เข้ามาชมเว็บไซต์ เป็นข้อมูลที่ถูก SUM ไว้ในแต่ล่ะวัน

MySQL Table
CREATE TABLE `counter` (
  `DATE` date NOT NULL,
  `IP` varchar(30) NOT NULL,
  PRIMARY KEY  (`DATE`,`IP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE `daily` (
  `DATE` date NOT NULL,
  `NUM` varchar(3) NOT NULL,
  PRIMARY KEY  (`DATE`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Concept การทำงาน
Concept ของ Script ตัวนี้ไม่ยาก คือในแต่ล่ะวันเมื่อ User ทำการเปิดหน้าเว็บ Page ขึ้นมา ก็จะถูก Insert ข้อมูลวันที่และ IP Address ลงในตาราง counter โดยในแต่ล่ะวันก็จะ Insert ข้อมูลทั้งหมด โดยหมายเลข IP Address จะไม่ซ้ำกัน ซึ่งจะได้ข้อมูล UNIQUE IP ที่ไม่ซ้ำกัน ของ

วันนั้น ๆ ลงในตาราง counter และ เมื่อมีการเปลี่ยนวันใหม่ ข้อมูลที่ถูก Insert ลงในตาราง counter ก็จะถูก SUM และ Move ไปไว้ในตาราง daily ซึ่งจะเก็บข้อมูลทุก ๆ วัน โดยโปรแกรมจะทำงานแบบนี้ซ้ำไปเรื่อย ๆ ไม่มีวันสิ้นสุด

สำหรับการ Query ตัว Statistics มาแสดงนั้นจะใช้ความสามารถของ function ของ MySQL ในการคำนวณ Query จากตาราง daily เพื่อนำข้อมูลมาแสดง

สำหรับ Code เต็ม ๆ ครับ

PHP Statistics
<html>
<head>
<title>ThaiCreate.Com Tutorials</title>
</head>
<body>
<?php
	//*** By Weerachai Nukitram ThaiCreate.Com ***//

	//*** Connect MySQL ***//
	mysql_connect("localhost","root","root");
	mysql_select_db("counter");

	//*** Select วันที่ในตาราง Counter ว่าปัจจุบันเก็บของวันที่เท่าไหร่  ***//
	//*** ถ้าเป็นของเมื่อวานให้ทำการ Update Counter ไปยังตาราง daily และลบข้อมูล เพื่อเก็บของวันปัจจุบัน ***//
	$strSQL = " SELECT DATE FROM counter LIMIT 0,1";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	if($objResult["DATE"] != date("Y-m-d"))
	{
		//*** บันทึกข้อมูลของเมื่อวานไปยังตาราง daily ***//
		$strSQL = " INSERT INTO daily (DATE,NUM) SELECT '".date('Y-m-d',strtotime("-1 day"))."',COUNT(*) AS intYesterday FROM  counter WHERE 1 AND DATE = '".date('Y-m-d',strtotime("-1 day"))."'";
		mysql_query($strSQL);

		//*** ลบข้อมูลของเมื่อวานในตาราง counter ***//
		$strSQL = " DELETE FROM counter WHERE DATE != '".date("Y-m-d")."' ";
		mysql_query($strSQL);
	}

	//*** Insert Counter ปัจจุบัน ***//
	$strSQL = " INSERT INTO counter (DATE,IP) VALUES ('".date("Y-m-d")."','".$_SERVER["REMOTE_ADDR"]."') ";
	mysql_query($strSQL);

	//******************** Get Counter ************************//

	// Today //
	$strSQL = " SELECT COUNT(DATE) AS CounterToday FROM counter WHERE DATE = '".date("Y-m-d")."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	$strToday = $objResult["CounterToday"];

	// Yesterday //
	$strSQL = " SELECT NUM FROM daily WHERE DATE = '".date('Y-m-d',strtotime("-1 day"))."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	$strYesterday = $objResult["NUM"];

	// This Month //
	$strSQL = " SELECT SUM(NUM) AS CountMonth FROM daily WHERE DATE_FORMAT(DATE,'%Y-%m')  = '".date('Y-m')."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	$strThisMonth = $objResult["CountMonth"];

	// Last Month //
	$strSQL = " SELECT SUM(NUM) AS CountMonth FROM daily WHERE DATE_FORMAT(DATE,'%Y-%m')  = '".date('Y-m',strtotime("-1 month"))."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	$strLastMonth = $objResult["CountMonth"];

	// This Year //
	$strSQL = " SELECT SUM(NUM) AS CountYear FROM daily WHERE DATE_FORMAT(DATE,'%Y')  = '".date('Y')."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	$strThisYear = $objResult["CountYear"];

	// Last Year //
	$strSQL = " SELECT SUM(NUM) AS CountYear FROM daily WHERE DATE_FORMAT(DATE,'%Y')  = '".date('Y',strtotime("-1 year"))."' ";
	$objQuery = mysql_query($strSQL);
	$objResult = mysql_fetch_array($objQuery);
	$strLastYear = $objResult["CountYear"];

	//*** Close MySQL ***//
	mysql_close();
?>

<table width="183" border="1">
  <tr>
    <td colspan="2"><div align="center">Statistics</div></td>
  </tr>
  <tr>
    <td width="98">Today</td>
    <td width="75"><div align="center"><?php echo number_format($strToday,0);?></div></td>
  </tr>
  <tr>
    <td>Yesterday</td>
    <td><div align="center"><?php echo number_format($strYesterday,0);?></div></td>
  </tr>
  <tr>
    <td>This Month </td>
    <td><div align="center"><?php echo number_format($strThisMonth,0);?></div></td>
  </tr>
  <tr>
    <td>Last Month </td>
    <td><div align="center"><?php echo number_format($strLastMonth,0);?></div></td>
  </tr>
  <tr>
    <td>This Year </td>
    <td><div align="center"><?php echo number_format($strThisYear,0);?></div></td>
  </tr>
  <tr>
    <td>Last Year </td>
    <td><div align="center"><?php echo number_format($strLastYear,0);?></div></td>
  </tr>
</table>
</body>
<html>



Screenshot

PHP Statistics







.


   
Share
Bookmark.   

  By : TC Admin
  Article : บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ
  Score Rating :
  Create Date : 2011-04-26
  Download : No files
Sponsored Links
ThaiCreate.Com Forum


Comunity Forum Free Web Script
Jobs Freelance Free Uploads
Free Web Hosting Free Tools

สอน PHP ผ่าน Youtube ฟรี
สอน Android การเขียนโปรแกรม Android
สอน Windows Phone การเขียนโปรแกรม Windows Phone 7 และ 8
สอน iOS การเขียนโปรแกรม iPhone, iPad
สอน Java การเขียนโปรแกรม ภาษา Java
สอน Java GUI การเขียนโปรแกรม ภาษา Java GUI
สอน JSP การเขียนโปรแกรม ภาษา Java
สอน jQuery การเขียนโปรแกรม ภาษา jQuery
สอน .Net การเขียนโปรแกรม ภาษา .Net
Free Tutorial
สอน Google Maps Api
สอน Windows Service
สอน Entity Framework
สอน Android
สอน Java เขียน Java
Java GUI Swing
สอน JSP (Web App)
iOS (iPhone,iPad)
Windows Phone
Windows Azure
Windows Store
Laravel Framework
Yii PHP Framework
สอน jQuery
สอน jQuery กับ Ajax
สอน PHP OOP (Vdo)
Ajax Tutorials
SQL Tutorials
สอน SQL (Part 2)
JavaScript Tutorial
Javascript Tips
VBScript Tutorial
VBScript Validation
Microsoft Access
MySQL Tutorials
-- Stored Procedure
MariaDB Database
SQL Server Tutorial
SQL Server 2005
SQL Server 2008
SQL Server 2012
-- Stored Procedure
Oracle Database
-- Stored Procedure
SVN (Subversion)
แนวทางการทำ SEO
ปรับแต่งเว็บให้โหลดเร็ว


Hit Link
   







Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่