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

Registered : 107,511

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
2 หัวใจหลักของการทำ SEO ยุค 2018 เรื่องที่ไม่ควรละเลยสำหรับคนทำเว็บ
2 หัวใจหลักของการทำ SEO ยุค 2018 เรื่องที่ไม่ควรละเลยสำหรับคนทำเว็บ
กลยุทธ์ทางการตลาดที่หลายต่อหลายคนที่มักจะต่างหลีกไม่พ้นในสังคมสมัยนี้นั้นคือ การทำ”SEO”เพราะการทำ “SEO “ถือเป็นการโปรโมทเว็บไซต์ของเราให้เป็นที่รู้จักของตลาดบนโลกออนไลน์
Rating : Update : 2018-10-17 13:22:26
ติดตั้ง SSL (https) ฟรีโดย Let's Encrypt
ติดตั้ง SSL (https) ฟรีโดย Let's Encrypt
วิธีติดตั้ง SSL โดย Let's Encrypt อย่างง่ายที่สุด.
Rating : Update : 2017-11-06 15:25:43
C# Extension Methods แบบ บ้านๆ
C# Extension Methods แบบ บ้านๆ
ทุกคนทีเขียนโปรแกรม ก็มักจะเจอว่าเวลาเราเรียกใช้ตัวแปร ต่างๆ แล้วพิมพ์ จุดแล้วมักจะเจอว่ามี method หรือ function ขึ้นมาให้เลือกแบบนี้
Rating : Update : 2019-04-29 15:01:47
มาใช้ Notepad++ ทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน
มาใช้ Notepad++ ทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน
วิธีใช้ Notepad++ กับปลั๊กอินที่ใช้สำหรับทำการ Compare ไฟล์ระหว่างไฟล์ 2 ไฟล์ว่ามีตรงไหนบ้างที่แตกต่างกัน จำเป็นอย่างยิ่งในการเขียนโปรแกรม
Rating : Update : 2019-07-18 15:09:35
SSL (https) เป็นเหตุ ถึงเวลาโบกมือลา truehits อย่างเป็นทางการ
SSL (https) เป็นเหตุ ถึงเวลาโบกมือลา truehits อย่างเป็นทางการ
เว็บสถิติเก่าแกอย่าง Truethits กับเทคโนโลยี่ SSL (https) ที่ทำให้ต้องโบกมือลาอย่างเป็นทางการซะที
Rating : Update : 2018-09-13 21:50:11
ITSM S1 คือระบบ Helpdesk Ticket Management ที่ใช้สำหรับรับแจ้งปัญหา
ITSM S1 คือระบบ Helpdesk Ticket Management ที่ใช้สำหรับรับแจ้งปัญหา
ติดตามความคืบหน้าของปัญหา ทำหน้าที่ให้ความช่วยเหลือแก่ผู้ใช้งาน ยกตัวอย่างเช่น ลูกค้า หรือ End User สามารถแจ้งปัญหาผ่านระบบ ITSM
Rating : Update : 2019-04-23 11:59:18
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
7 เหตุผล ที่ไม่ควรใช้ SELECT * เพื่อ Query ข้อมูล
เชื่อว่า Programmer ทุกคน คงเคยใช้คำสั่ง SQL กันมาบ้างแล้ว และคำสั่งพื้นฐานที่ทุกคนถนัดและมักจะใช้กันบ่อยก็คือ SELECT * แต่วันนี้เรามาดูกันว่า คำสั่งที่เรามักใช้งานกันบ่อยๆ นี้ อาจจะไม่ค่อยเหมาะที่จะใช้เท่าไรนัก แต่จะมีเหตุผลอะไรบ้าง เราไปดูกันเลยครับ
Rating : Update : 2019-03-18 13:57:30
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
ปรับแต่งเว็บให้โหลดเร็ว


สุดยอด Source Code V2.0
 

แจ้งชำระเงิน/โอนเงิน
 

Hit Link
   







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