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 > PHP Forum > ช่วยแนะนำ ดู และปรับแต่ง โค๊ด php counter ตัวนับสถิติเว็บไซต์ให้หน่อยครับ



 

ช่วยแนะนำ ดู และปรับแต่ง โค๊ด php counter ตัวนับสถิติเว็บไซต์ให้หน่อยครับ

 



Topic : 097888



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์




ช่วยหน่อยนะครับ Admin พอดีเขียนตัวนับสถิติเว็บไซต์ลงฐานข้อมูล (เจอโค๊ดมา)

ตามนี้ (จัดการปรับปรุงเรียบร้อย)

Code (PHP)
<?php
include "config.php";

$date = date("d-m-Y");
$ip = $_SERVER["REMOTE_ADDR"];
$sql = "INSERT INTO tb_counter(date_visit, ip_visit) VALUES('$date', '$ip')";
mysql_query($sql);

//Page View//
$sql = "SELECT count(ip_visit) AS visit FROM tb_counter";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$id_visit = $row[id_visit];
$pageview = str_pad($view,9);


//Today Page//
$today = date("d-m-Y");
$sql = "SELECT count(DISTINCT(ip_visit)) AS visit FROM tb_counter WHERE date_visit = '$today'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$id_visit = $row[id_visit];
$today = str_pad($visit,9);

//Yesterday Page//
$yestday = date("d-m-Y",strtotime("-1 day"));
$sql = "SELECT count(DISTINCT(ip_visit)) AS visit FROM tb_counter WHERE date_visit = '$yestday'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$id_visit = $row[id_visit];
$yesterday = str_pad($visit,9);

//Lastmonth Page//
$lastmon = date("m-Y",strtotime("-1 month"));
$sql = "SELECT count(DISTINCT(ip_visit)) AS visit FROM tb_counter WHERE date_visit = '$lastmon'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$id_visit = $row[id_visit];
$lastmonth = str_pad($visit,9);

//Close MySQL//
mysql_close();

?>


ใช้งานได้ตามปกติ สุดยอดด้วย
แต่อย่างนั้น ผมก็ไม่พอใจ เพราะกลัวว่า นานไป ฐานข้อมูลจะเต็มได้ เพราะว่ามันเพิ่มข้อมูลลงฐานข้อมูลทุกครั้งที่คลิก เลยเห็นว่า แบบนี้เจ๋ง แต่ระยะยาวคงไม่ไหวแน่

หรือใครพอมีวิธีอื่นช่วยแนะนำหน่อยนะครับ

ในใจคิดว่า อยากจะให้เป็นแบบนี้
(0) นับการคลิกเพจ โดยการบันทึกเฉพาะจำนวนคลิกลงไปในฐานข้อมูลแค่ แถว เดียว (ไม่มีการเพิ่มข้อมูลลงฐานข้อมูลอีก) เป็นการอัพเดทแทนเพิ่มข้อมูลลงในฐานข้อมูล
(1) นับจำนวน ip ที่ซ้ำกันเพียง 1 ครั้งต่อวัน (หากเปิด บราวเซอร์ ต่างชนิดกันให้นับ ip เดิมอีกครั้ง และบันทึกข้อมูลลงฐานข้อมูล)
(2) 1 วันผ่านไป เมื่อ ip เดิมมากเข้าชมเว็บอีกครั้ง ให้นับ 1 และบันทึกข้อมูลลงฐานข้อมูล ( เหมือนข้อ (1) )

ทั้ง 3 ข้อ อยากให้สามารถปรับแต่งได้เหมือนโค๊ดที่แปะมาด้วยครับ เพื่อจะได้นำไปประยุกต์ใช้ต่อไป

แค่นี้แหละครับ ไม่ค่อยเก่งการเขียนเท่าไหร่ ก็คิดได้แค่นี้แหละครับ ขอขอบคุณล่วงหน้าครับ และหวังว่า กระทู้นี้คงจะมีประโยชน์กับสมาชิกหลายท่านนะครับ



Tag : PHP, MySQL, Windows







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-07-16 16:15:54 By : phaithoon View : 3213 Reply : 6
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

จัดไปครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-16 17:07:25 By : mr.win
 


 

No. 2



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


สุดท้ายก็ได้ซะที เมื่อได้แล้ว ผมก็ไม่หวงห้ามล่ะครับ จัดแจกไปเลย ฟรี!

สร้างตารางบนฐานข้อมูล ไฟล์ชื่อ DB_countSQL.sql
Code (SQL)
--
-- โครงสร้างตาราง `tb_counter`
--

CREATE TABLE `tb_counter` (
  `date_visit` varchar(30) NOT NULL,
  `ip_visit` varchar(30) NOT NULL,
  `agent_visit` varchar(30) NOT NULL,
  `count_visit` int(12) NOT NULL default '1'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


--
-- โครงสร้างตาราง `tb_pageview`
--

CREATE TABLE `tb_pageview` (
  `view` int(12) NOT NULL default '1'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 
-- dump ตาราง `tb_pageview`
-- 

INSERT INTO `tb_pageview` VALUES (1);


==ไฟล์เชื่อมต่อฐานข้อมูล config.php
Code (PHP)
<?php
$host = "localhost";
$username = "xxx"; //ชื่อผู้ใช้งานฐานข้อมูล เช่น "root"
$password = "xxx"; //รหัสผ่านผู้ใช้งานฐานข้อมูล เช่น "1234"
$dbname = "xxx"; //ชื่อฐานข้อมูล เช่น "test"

$dbconnect = mysql_connect ("$host","$username","$password") or die (mysql_error());
mysql_select_db($dbname,$dbconnect);

mysql_query("SET NAMES UTF8");
?>


==ไฟล์สำหรับจัดการข้อมูล visitor.php
Code (PHP)
<?php
include "config.php";


//Page View//
$sql = "SELECT * FROM tb_pageview";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$view = $row[view];
//Update Pageview//
	$view_new = $view +1;
	$sqlview = "UPDATE tb_pageview SET view='$view_new'";
	$resultview = mysql_query($sqlview);
	$pageview = str_pad($view,12);

//Check IP on DATE//
date_default_timezone_set("Asia/Bangkok");
$date = date("Y-m-d");
$ip = $_SERVER["REMOTE_ADDR"];
$agent = getenv("HTTP_USER_AGENT");

$sql_ctime ="SELECT * FROM tb_counter WHERE date_visit ='$date'";
$result_ctime = mysql_query($sql_ctime);
$row_ctime = mysql_fetch_array($result_ctime);
	if ($row_ctime <= 0) {
		$sql_counter = "INSERT INTO tb_counter (date_visit, ip_visit, agent_visit, count_visit) VALUES('$date', '$ip', '$agent', '1')";
		mysql_query($sql_counter);
	}

//Today Page//
$today = date("Y-m-d");
$sql = "SELECT count(DISTINCT(ip_visit)) AS visit FROM tb_counter WHERE date_visit = '$today'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$today = str_pad($visit,12);

//Yesterday Page//
$yestday = date("Y-m-d",strtotime("-1 day"));
$sql = "SELECT SUM(count_visit) AS visit FROM tb_counter WHERE date_visit = '$yestday'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$yesterday = str_pad($visit,12);

//Thismonth Page//
$thismon = date("Y-m");
$sql = "SELECT SUM(count_visit) AS visit FROM tb_counter WHERE DATE_FORMAT(date_visit, '%Y-%m') = '$thismon'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$thismonth = str_pad($visit,12);

//Lastmonth Page//
$lastmon = date("Y-m",strtotime("-1 month"));
$sql = "SELECT SUM(count_visit) AS visit FROM tb_counter WHERE DATE_FORMAT(date_visit, '%Y-%m') = '$lastmon'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$lastmonth = str_pad($visit,12);

//Total Visit//
$sql = "SELECT SUM(count_visit) AS visit FROM tb_counter";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$visit = $row[visit];
$total = str_pad($visit,12);

//Close MySQL//
mysql_close();

?>


==ไฟล์เรียกใช้งาน index.php

Code (PHP)
<div id="counter_body">
			<div class="bgbutton">
			<div class="counter_stat">สถิติการเข้าชมเว็บไชต์</div>
			</div><!--end bgbutton-->
				<? include "visitor.php"; ?>
				<table><tr>
					<td><img src="images/stat.png">Page view:</td><td class="stat"><?=$pageview;?></td></tr>
					<tr><td><img src="images/stat_today.png">Today:</td><td class="stat"><?=$today;?></td></tr>
					<tr><td><img src="images/stat_today.png">Yesterday:</td><td class="stat"><?=$yesterday;?></td></tr>
					<tr><td><img src="images/stat_today.png">This month:</td><td class="stat"><?=$thismonth;?></td></tr>
					<tr><td><img src="images/stat_today.png">Last month:</td><td class="stat"><?=$lastmonth;?></td></tr>
					<tr><td><img src="images/stat_today.png">Total visit:</td><td class="stat"><?=$total;?></td></tr>
				</table>
		</div><!--end counter_body-->


รับประกันการใช้งานได้ 99.99% (ยังไม่เคยทดลองบนโฮสต์จริง)
หวังว่าหลายท่านคงจะถูกใจครับ

ขอกำลังใจด้วยนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-17 00:07:48 By : phaithoon
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-17 06:07:22 By : mr.win
 


 

No. 4



โพสกระทู้ ( 1,096 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ให้กำลังใจ เอาไว้จะขอไปใช้ ตอนนี้ให้กำลังใจไปก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-17 16:38:42 By : compiak
 


 

No. 5



โพสกระทู้ ( 1 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook

โค้ดนี้ ใช้ได้ดี เลยค่ะ

เอาไปดัดแปลงนิ๊ดหน่อยให้เข้ากับหน้าเพจเรา ขอบคุณนะค๊ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-03 14:14:05 By : powerdream
 


 

No. 6



โพสกระทู้ ( 61 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Facebook


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-03 14:50:28 By : nirunsu
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยแนะนำ ดู และปรับแต่ง โค๊ด php counter ตัวนับสถิติเว็บไซต์ให้หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
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 อัตราราคา คลิกที่นี่