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 > ขอ code counter แบบละเอียดหน่อยค่ะ ขอ code counter แบบละเอียดที่สามารถเก็บข้อมูลแบบ จำนวนผู้เข้าชมในแต่ละวัน



 

ขอ code counter แบบละเอียดหน่อยค่ะ ขอ code counter แบบละเอียดที่สามารถเก็บข้อมูลแบบ จำนวนผู้เข้าชมในแต่ละวัน

 



Topic : 028068



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



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




ขอ code counter แบบละเอียดที่สามารถเก็บข้อมูลแบบ จำนวนผู้เข้าชมในแต่ละวัน / แต่ละเดือน หน่อยค่ะ

ขอบคุณล่วงหน้านะค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-06-08 17:11:46 By : it53008 View : 9608 Reply : 55
 

 

No. 1



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

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

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

ตัวอย่างการบันทึก counter โดยใช้คลาส application scope

แต่ถ้าจะให้ดีจากเดิมที่บันทึกใส่ไฟล์เฉยๆ บันทึกใส่ database ดีกว่าครับ
เช่น counter_table( counter_date, counter_value ) แล้วก็เปลี่ยนแปลงค่าของตารางดังนี้ครับเช่น
'UPDATE counter_table SET counter_value=counter_value+1 WHERE counter_date=\''.date('Y-m-d').'\'';

และเวลาจะหาว่าเดือนนี้มี counter เท่าไหร่ก็ใช้คำสั่ง
"SELECT SUM(counter_value) as counter FROM counter_table WHERE YEAR(counter_date)='2009' MONTH(counter_date)='5'";
เพื่อหาค่า counter ของเดือนครับ






Date : 2009-06-08 18:03:52 By : num
 


 

No. 2



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



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


แล้วยังงี้ ต้องสร้างฐานข้อมูลว่าอะไรบ้างค่ะ

คือไม่มีความรู้เกี่ยวกับเรื่องฐานข้อมูลนะค่ะ

เพิ่งจะมาหัดทำงานด้านนี้นะค่ะ
Date : 2009-06-09 10:04:43 By : it53008
 

 

No. 3



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

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

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

CREATE TABLE `counters` (
`cdate` CHAR(8) NOT NULL,
`cvalue` INT(10) NOT NULL DEFAULT '0',
`cpage` VARCHAR(50) NOT NULL,
PRIMARY KEY (`cdate`)
) ENGINE=MYISAM

คร่าวๆ น่าจะเป็นแบบนี้ครับ
cdate เก็บวันที่มีการบันทึก counter เป็น primary key
cvalue เก็บจำนวน counter
cpage เก็บหน้าที่เก็บ counter

ถ้าต้องการเก็บ counter ของ page1.php ก็จะใช้คำสั่ง php ประมาณนี้ครับ
mysql_query('INSERT INTO counters (cpage,cdate,cvalue) VALUES(\'page1.php\',\''.date('Y-m-d').'\',0)');
mysql_query('UPDATE counters SET cvalue=cvalue+1 WHERE cpage=\'page2.php\' AND cdate=\''.date('Y-m-d').'\'');
Date : 2009-06-09 12:49:23 By : num
 


 

No. 4



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

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

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

CREATE TABLE `counters` (
`cdate` DATE NOT NULL,
`cvalue` INT(10) NOT NULL DEFAULT '0',
`cpage` VARCHAR(50) NOT NULL,
PRIMARY KEY (`cdate`)
) ENGINE=MYISAM

อ้อ เปลี่ยน cdate เป็น DATE ดีกว่าครับ แหะๆ
Date : 2009-06-09 12:51:11 By : num
 


 

No. 5



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



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


ขอถามเพิ่มหน่อยนะค่ะ ถ้าเราจะเปลี่ยนจากการเก็บข้อมูลลงใน

var $fn='appobj.txt';

ไปเก็บลงในฐานข้อมูล ต้องแก้ไขจุดไหนค่ะ

ขอบคุณค่ะ
Date : 2009-06-09 13:43:20 By : it53008
 


 

No. 6



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



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


ได้สร้างหน้า counter.php แล้วได้ใส่โค้ดแบบนี้ลงไปค่ะ ปรากฏว่าข้อมูลมันไม่ไปอัพเดทในตารางในฐานข้อมูล แต่มันไปสร้างไฟล์หนึ่งขึ้นมาที่ชื่อ $tb แล้วเก็บค่าลงไปนะค่ะ ไม่ทราบว่าทำผิดตรงไหนหรือค่ะ

Code (PHP)
<?
$host="localhost";
$username="root"; 
$password=""; 
$db="business3";
$tb="counter";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ "); 

mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); 

class AppVar
{
  var $fn='$tb';
  function write($key,$data){
    $fn = $this->fn;
    $var=$this->read();
    $var[$key]=$data;
    $f=fopen($fn,'w');
    flock($f,LOCK_EX);
    fwrite($f,serialize($var));
    flock($f,LOCK_UN);
    fclose($f);
  }
  function read($key=null,$default=null){
    $fn = $this->fn;
    if(!file_exists($fn))
      return is_null($key)?array():$default;
    $f=fopen($fn,'r');
    flock($f,LOCK_SH);
    $d='';
    while(!feof($f))
      $d.=fread($f,512);
    flock($f,LOCK_UN);
    fclose($f);
     $var=unserialize($d);
    return
      is_null($key)
      ?(is_null($var)?array():$var)
      :(isset($var[$key])?$var[$key]:$default);
  }
}

if (PHP_VERSION>5){
	date_default_timezone_set("Asia/Bangkok");
}
$app = new AppVar();

/* ทำการตรวจสอบ Counter */
$sql1="Select * From $tb";
$dbquery1=mysql_db_query($db,$sql1);
$result1= mysql_fetch_array($dbquery1);
$counter=$result1[counter];

//แสดงผล counter ของวันนี้และเปลี่ยนแปลงค่า counter เพิ่มขึ้น 1
$today_str = date('Y-m-d');
$data = $app->read($today_str);
$counter = empty($data)?1:$data+1;
$app->write($today_str,$counter);
echo "today counter=$counter<br />";

//แสดงผล counter ของแต่ละวันในเดือนที่เลือก
$selectYear = date('Y');
$selectMonth = date('m');
$alldata = $app->read();
$c = 0;
foreach($alldata as $date_str=>$counter){
	list($y,$m,$d)=explode('-',$date_str);
	if ($y==$selectYear && $m==$selectMonth){
		echo "$date_str counter=$counter<br />";
		$c += $counter;
	}
}
echo "Year $selectYear Month $selectMonth counter=$c<br />";

echo "คุณเข้ามาเยี่ยมชมเป็นคนที่ ";
echo $counter; // echo ค่าของ conter

/* ทำการ Update Counter โดย+1 */
$counter_new=$counter+1;
$sql2="update $tb set counter='$counter_new'";
$dbquery2=mysql_db_query($db,$sql2);

mysql_close();
?>

Date : 2009-06-09 14:04:08 By : it53008
 


 

No. 7



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



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


ได้สร้างหน้า counter.php แล้วได้ใส่โค้ดแบบนี้ลงไปค่ะ ปรากฏว่าข้อมูลมันไม่ไปอัพเดทในตารางในฐานข้อมูล แต่มันไปสร้างไฟล์หนึ่งขึ้นมาที่ชื่อ $tb แล้วเก็บค่าลงไปนะค่ะ ไม่ทราบว่าทำผิดตรงไหนหรือค่ะ

Code (PHP)
<?
$host="localhost";
$username="root"; 
$password=""; 
$db="business3";
$tb="counter";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ "); 

mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); 

class AppVar
{
var $fn='$tb';
function write($key,$data){
$fn = $this->fn;
$var=$this->read();
$var[$key]=$data;
$f=fopen($fn,'w');
flock($f,LOCK_EX);
fwrite($f,serialize($var));
flock($f,LOCK_UN);
fclose($f);
}
function read($key=null,$default=null){
$fn = $this->fn;
if(!file_exists($fn))
return is_null($key)?array():$default;
$f=fopen($fn,'r');
flock($f,LOCK_SH);
$d='';
while(!feof($f))
$d.=fread($f,512);
flock($f,LOCK_UN);
fclose($f);
$var=unserialize($d);
return
is_null($key)
?(is_null($var)?array():$var)
:(isset($var[$key])?$var[$key]:$default);
}
}

if (PHP_VERSION>5){
date_default_timezone_set("Asia/Bangkok");
}
$app = new AppVar();

/* ทำการตรวจสอบ Counter */
$sql1="Select * From $tb";
$dbquery1=mysql_db_query($db,$sql1);
$result1= mysql_fetch_array($dbquery1);
$counter=$result1[counter];

//แสดงผล counter ของวันนี้และเปลี่ยนแปลงค่า counter เพิ่มขึ้น 1
$today_str = date('Y-m-d');
$data = $app->read($today_str);
$counter = empty($data)?1:$data+1;
$app->write($today_str,$counter);
echo "today counter=$counter<br />";

//แสดงผล counter ของแต่ละวันในเดือนที่เลือก
$selectYear = date('Y');
$selectMonth = date('m');
$alldata = $app->read();
$c = 0;
foreach($alldata as $date_str=>$counter){
list($y,$m,$d)=explode('-',$date_str);
if ($y==$selectYear && $m==$selectMonth){
echo "$date_str counter=$counter<br />";
$c += $counter;
}
}
echo "Year $selectYear Month $selectMonth counter=$c<br />";

echo "คุณเข้ามาเยี่ยมชมเป็นคนที่ ";
echo $counter; // echo ค่าของ conter

/* ทำการ Update Counter โดย+1 */
$counter_new=$counter+1;
$sql2="update $tb set counter='$counter_new'";
$dbquery2=mysql_db_query($db,$sql2);

mysql_close();
?>

Date : 2009-06-09 14:18:41 By : it53008
 


 

No. 8

Guest


คลาส AppVar นี้ออกแบบมาให้เขียนลงในไฟล์อย่างเดียวน่ะครับ
จะให้แก้ให้บันทึกลงฐานข้อมูลต้องใช้เวลาเยอะเลย

ผมเขียนตัวอย่างให้ดูครับ โค้ดนี้เป็นส่วนของการบันทึก counter นะครับ
แก้ตรงส่วน username/password แล้วนำไปทดสอบได้ทันทีครับ
<?php

if (PHP_VERSION>5){date_default_timezone_set("Asia/Bangkok");}

//host, username, password
$link = mysql_connect('localhost','root','12345');
$page_name = basename($_SERVER['SCRIPT_NAME']);
$today = date('Y-m-d');

if (!$link){
	die('Please check host, username, password.');
}
//select database
$db  = mysql_select_db('test');
if (!$db){
	die('Please check database name');
}
//create table if table counters dose not exists
$r = mysql_query("SHOW TABLES LIKE 'counters'");
if (mysql_num_rows($r)==0){
	$r = mysql_query(
		"CREATE TABLE `counters` (                 
	      `cdate` DATE NOT NULL,               
	      `cvalue` INT(10) NOT NULL DEFAULT '0',  
	      `cpage` VARCHAR(50) NOT NULL,           
	      PRIMARY KEY (`cdate`)                   
	  ) ENGINE=MYISAM"
	);
	if (!$r){die(mysql_error());}
}


//load counter row of this page - today
$r = mysql_query(
	"SELECT cvalue FROM counters WHERE cpage='$page_name' AND cdate='$today'"
);
if (!$r){die(mysql_error());}

if (mysql_num_rows($r)==0){
	//insert new row if it's first opening this page
	$counter = 1;
	mysql_query(
		"INSERT INTO counters (cpage,cdate,cvalue) VALUES('$page_name','$today',1)"
	);
	if (!$r){die(mysql_error());}
}else{
	//update the row if it's second opening this page
	$counter = mysql_result($r,0)+1;	
	mysql_query(
		"UPDATE counters SET cvalue=$counter WHERE cpage='$page_name' AND cdate='$today' "
	);
	if (!$r){die(mysql_error());}
}

echo "the page counter = $counter";

?>


php-database-counter
Date : 2009-06-09 14:35:25 By : num
 


 

No. 9



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



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


แก้ไขตามที่บอกแล้วค่ะ แต่มันบอกว่า

Code
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ENGINE=MYISAM' at line 6


ไม่รู้ว่าจะเกี่ยวกับที่เครื่อง เป็น appserv ตัวเก่าหรือเปล่า นะค่ะ หรือว่าเขียนติดต่อฐานข้อมูลผิดก็ไม่รู้

ขอบคุณมากจริงๆ เลยนะค่ะ ที่อุตส่าห์ช่วยเหลือมือใหม่ขนาดนี้

Code (PHP)
<?php

if (PHP_VERSION>5){date_default_timezone_set("Asia/Bangkok");}

$host="localhost";
$username="root"; 
$password=""; 
$db="business3";
$tb="counters";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ "); 

mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); 

//host, username, password
$link = mysql_connect('localhost','root','');
$page_name = basename($_SERVER['SCRIPT_NAME']);
$today = date('Y-m-d');

Date : 2009-06-09 15:25:14 By : it53008
 


 

No. 10



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

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

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

สงสัยจะเป็น mysql คนละเวอร์ชั่นกันครับ
บรรทัด
) ENGINE=MYISAM"
เปลี่ยนเป็น
) TYPE=MYISAM"
หรือไม่ก็ลบ ENGINE=MYISAM ไปเลยเหลือแค่
)"
ครับ

ขอบคุณมากจริงๆ เลยนะค่ะ ที่อุตส่าห์ช่วยเหลือมือใหม่ขนาดนี้

ไม่เป็นไรครับ ถือเป็นการซ้อมไปในตัวครับ
Date : 2009-06-09 15:39:30 By : num
 


 

No. 11

Guest


ขอบคุณมากค่ะ แก้ไขได้แล้ว พอรันแล้ว ผลลัพธ์ออกมาดังนี้ค่ะ

6the page counter = 6

เลขก็รันขึ้นไปเรื่อยๆ แล้วถ้าเราต้องการเอา code counter ตรงนี้ ไปใส่ในหน้าเว็บของเรานะค่ะ

เช่น เรามีหน้าเว็บ 10 หน้า เอาโค้ดไปใส่ทั้ง 10 หน้า ผ่านไป 2 เดือน ในฐานข้อมูล มันจะแสดงผล 60 วัน

หรือเปล่าค่ะ

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

ขอบคุณมากค่ะ
Date : 2009-06-09 16:22:54 By : it53008
 


 

No. 12



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

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

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

เช่น เรามีหน้าเว็บ 10 หน้า เอาโค้ดไปใส่ทั้ง 10 หน้า ผ่านไป 2 เดือน ในฐานข้อมูล มันจะแสดงผล 60 วัน

ใช่ครับ สมมุติว่ามีคนเข้าชมทุกหน้าและทุกวันนะครับ
ใน 1 วัน แต่ละหน้าจะเพิ่ม 1 record ลงในตาราง
ถ้าเก็บ counter 1หน้า 60 วันก็จะมี record เพิ่มขึ้น 60 record (แต่ละ record จะแทน counter แต่ละวันของหน้านี้)
แต่ถ้าเก็บ counter 10หน้า 60 วันก็จะมี record เพิ่มขึ้น 600 record ครับ

สำหรับโค้ดผลรวมของ counter ใช้คำสั่งนี้ครับ
$r = mysql_query('SELECT SUM(cvalue) FROM counters');
echo mysql_result($r,0);
Date : 2009-06-09 17:05:45 By : num
 


 

No. 13

Guest


Quote:
เช่น เรามีหน้าเว็บ 10 หน้า เอาโค้ดไปใส่ทั้ง 10 หน้า

การใส่ในแต่ละหน้าทำอย่างไรค่ะ แล้วแบบนี้ผู้ชมก็เห็นจำนวนในแต่ละหน้าหรือเปล่า?
และก็จะมี ตาราง10ตารางหรือเปล่า? ค่ะ
Date : 2009-06-10 10:06:33 By : toto2499
 


 

No. 14

Guest


ขอรบกวนอีกรอบค่ะ ได้สร้างหน้าเว็บขึ้นมา 2 หน้า ชื่อไฟล์ counter7.php กับ counter8.php และใส่โค้ดเข้าไป ปรากฏว่า ในหน้าเว็บของไฟล์ counter7.php พอรีเฟรชหน้า เลขก็รันขึ้นไปเรื่อยๆ และจัดเก็บลงในตารางในฐานข้อมูลค่ะ

แต่สำหรับหน้า counter8.php ซึ่งเป็นโค้ดชุดเดียวกับ counter7.php

ปรากฏว่า ในหน้าเว็บของไฟล์ counter8.php พอรีเฟรชหน้า เลขก็ไม่เปลี่ยนค่ะ และไม่จัดเก็บค่าลงในตารางในฐานข้อมูลด้วยค่ะ

ไม่ทราบว่าเราต้องไปแก้ไขหรือเพิ่มตรงจุดไหนอีกค่ะ

ขอบคุณมากค่ะ
Date : 2009-06-10 10:22:49 By : it53008
 


 

No. 15



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

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

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

ปกติส่วนใหญ่เราจะสร้างไฟล์ connect.php เอาไว้ต่อกับ database โดยเฉพาะอยู่แล้ว

ดังนั้นเวลาใช้จริงให้ลบโค้ดส่วนที่เป็นการต่อ database และเลือก database และสร้างตารางทิ้งไปครับ

Code (PHP)
$link = mysql_connect('localhost','root','12345');
และ
if (!$link){
	die('Please check host, username, password.');
}
$db  = mysql_select_db('test');
if (!$db){
	die('Please check database name');
}
และ
$r = mysql_query("SHOW TABLES LIKE 'counters'");
if (mysql_num_rows($r)==0){
	$r = mysql_query(
		"CREATE TABLE `counters` (                 
	      `cdate` DATE NOT NULL,               
	      `cvalue` INT(10) NOT NULL DEFAULT '0',  
	      `cpage` VARCHAR(50) NOT NULL,           
	      PRIMARY KEY (`cdate`)                   
	  ) ENGINE=MYISAM"
	);
	if (!$r){die(mysql_error());}
}


และถ้าไม่ต้องการให้ผู้ชมเห็น counter ของวันนี้ของหน้านั้นให้ลบโค้ด
echo "the page counter = $counter";
ทิ้งไปอีกอันหนึ่ง

จากนั้นให้ save โค้ดส่วนที่เหลือเป็น dbcounter.php

เวลาต้องการให้หน้าไหนเก็บ counter ให้ใช้คำสั่ง require_once('dbcounter.php');
เมื่อมีคนเปิดเว็บหน้านั้น dbcounter.php ก็จะทำการบันทึกเปลี่ยนค่า counter ของวันนี้ของหน้านั้นให้โดยอัตโนมัติครับ

-------------------------------------------------
แล้วก็โปรแกรม counter ตัวนี้ใช้แค่ตารางเดียวครับ เก็บ counter ได้หลายหน้าแต่ใช้แค่ตารางเดียวครับ
Date : 2009-06-10 10:30:54 By : num
 


 

No. 16

Guest


ได้แก้ไขไฟล์แล้วค่ะ โดยการสร้างหน้า connect.php เป็นหน้าติดต่อฐานข้อมูล

Code (PHP)
<?
	$host="localhost";
	$username="root"; 
	$password=""; 
	$db="business3";
	$tb="counters";
	$link=mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ "); 
	
	mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้"); 
?>


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

แต่ขึ้นว่า the page counter = 1 ค่ะ



Code (PHP)
<?
require ("connect.php");
?>
<?php

if (PHP_VERSION>5){date_default_timezone_set("Asia/Bangkok");}

//host, username, password
$link = mysql_connect('localhost','root','');
$page_name = basename($_SERVER['SCRIPT_NAME']);
$today = date('Y-m-d');


//load counter row of this page - today
$r = mysql_query(
	"SELECT cvalue FROM counters WHERE cpage='$page_name' AND cdate='$today'"
);
if (!$r){die(mysql_error());}

if (mysql_num_rows($r)==0){
	//insert new row if it's first opening this page
	$counter = 1;
	mysql_query(
		"INSERT INTO counters (cpage,cdate,cvalue) VALUES('$page_name','$today',1)"
	);
	if (!$r){die(mysql_error());}
}else{
	//update the row if it's second opening this page
	$counter = mysql_result($r,0)+1;	
	mysql_query(
		"UPDATE counters SET cvalue=$counter WHERE cpage='$page_name' AND cdate='$today' "
	);
	if (!$r){die(mysql_error());}
}

echo "the page counter = $counter";


?>


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Date : 2009-06-10 10:59:42 By : it53008
 


 

No. 17



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

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

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

โทษทีครับเจอ error แล้วเดี๋ยวจะแก้ให้ครับ
Date : 2009-06-10 11:04:58 By : num
 


 

No. 18



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

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

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

แก้ไข error เสร็จแล้วครับ เป็น error เกี่ยวกับการตั้ง primary key ผิดไปครับ

ดาวน์โหลดไฟล์ตัวอย่างไปทดสอบนะครับ
dbcounter.zip
Date : 2009-06-10 11:31:44 By : num
 


 

No. 19

Guest


เปลี่ยนค่าใน connect.php แล้วค่ะ ตามนี้ คือเปลี่ยนแค่ชื่อฐานข้อมูลอย่างเดียวเป็น business

และรันผลออกมา ทุกไฟล์ที่ให้มาแสดงคำว่า Unknown system variable 'NAMES' หมดทุกหน้าเลยค่ะ

แต่ก็เอาไฟล์ไปใส่ใน appserv/www/dbcounter แล้วนะค่ะ เลยงงไม่รู้ว่าตัวเองผิดตรงไหน โทษทีนะค่ะ รบกวนอีกแล้ว ขอบคุณค่ะ
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Code (PHP)
<?php
//host, username, password
$link = mysql_connect('localhost','root','');
if (!$link){
	die('Please check host, username, password.');
}
	
//select database
$db  = mysql_select_db('business');
if (!$db){
	die('Please check database name');
}

//select database
//$r = mysql_query('SET NAMES UTF8');
$r = mysql_query('SET NAMES TIS620');
if (!$r) {die(mysql_error());}

//define constant
define('CONNECTED',true);

?>

Date : 2009-06-10 13:37:36 By : it53008
 


 

No. 20



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



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


ส่วน password ก็ปล่อยเป็นค่าว่างตามปกตินะค่ะ ไม่รู้ว่ามันจะผิดตรงไหนหรือเปล่านะค่ะ เนื่องจากแก้ไขในดรีมนะค่ะ

มันไม่มีโชว์ว่า เขียนอะไรผิดนะค่ะ
Date : 2009-06-10 14:04:56 By : it53008
 


 

No. 21



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

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

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

แก้ไขตรงนี้ครับ
//select database
//$r = mysql_query('SET NAMES UTF8');
//$r = mysql_query('SET NAMES TIS620');
//if (!$r) {die(mysql_error());}
Date : 2009-06-10 14:12:44 By : num
 


 

No. 22

Guest


ขอบคุณค่ะ เดี๋ยวจะไปลองทำดู

ชื่นชมจังเลย "คุณหนุ่ม"
Date : 2009-06-10 14:36:51 By : toto2499
 


 

No. 23

Guest


work ค่ะ work คุณหนุ่ม!
ถ้าอยู่แถวนี้ จะกระโดดหอมแก้ม แล้วพาไปเลี้ยง กาแฟแก้วโตๆ เลย
Date : 2009-06-10 15:22:18 By : toto2499
 


 

No. 24



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

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

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

ดีใจด้วยครับ ขอบคุณที่จะกระโดดหอมแก้มและเลี้ยงกาแฟครับ แต่ผมขอเปลี่ยนเป็นโอวัลตินแทน (ว่าเข้าไปนั่น..)
Date : 2009-06-10 15:55:59 By : num
 


 

No. 25

Guest


ถ้าจะปรับ ให้แสดงเป็นรูปกราฟฟิกไม่ใช่ตัวเลข ต้องแก้ไขยังไงค่ะ
Date : 2009-06-11 12:01:02 By : Guest
 


 

No. 26

Guest


ขอบคุณมากค่ะ ที่ช่วยเหลือ ไม่รู้จะกล่าวคำว่าอะไรนอกจากขอบคุณ

แต่ขอรบกวนถามเพิ่มเติมนะค่ะ ถ้าเราต้องการให้ counter แสดงผลเป็นรูป จะต้องแก้ไขยังไงค่ะ เพราะพยายามปรับจากโค้ด dbcounter.php ที่คุณให้มา แต่ผลลัพธ์ที่ออก ปรากฏว่า มันแสดงผลเฉพาะค่าของหน้า page1.php นั้นอย่างเดียว มันไม่เอายอดของหน้า page2.php มาบวกด้วยนะค่ะ
ไม่ได้แสดงยอดรวมออกมา

************************************************************
Code (PHP)
<?php
if (!defined('CONNECTED')){
	die('require connect.php');
}

if (PHP_VERSION>5){date_default_timezone_set("Asia/Bangkok");}
$page_name = basename($_SERVER['SCRIPT_NAME']);
$today = date('Y-m-d');

//load counter row of this page - today
$r = mysql_query(
	"SELECT cvalue FROM counters WHERE cpage='$page_name' AND cdate='$today'"
);
if (!$r){die(mysql_error());}

if (mysql_num_rows($r)==0){
	//insert new row if it's first opening this page
	$counter = 1;
	mysql_query(
		"INSERT INTO counters (cpage,cdate,cvalue) VALUES('$page_name','$today',1)"
	);
	if (!$r){die(mysql_error());}
}else{
	//update the row if it's second opening this page
	$counter = mysql_result($r,0)+1;	
	mysql_query(
		"UPDATE counters SET cvalue=$counter WHERE cpage='$page_name' AND cdate='$today' "
	);
	if (!$r){die(mysql_error());}
}

//show sum counters  
	$r = mysql_query('SELECT SUM(cvalue) FROM counters');
	echo mysql_result($r,0);

//เพิ่มเติมเอาเองค่ะ

	$counter=sprintf("%05d",$counter);

	for ($i=0;$i<strlen($counter);$i++)
	{
		$result=$counter[$i];

		switch($result)
		{
			case "0": $ret[$i]="0.gif"; break;
			case "1": $ret[$i]="1.gif"; break;
			case "2": $ret[$i]="2.gif"; break;
			case "3": $ret[$i]="3.gif"; break;
			case "4": $ret[$i]="4.gif"; break;
			case "5": $ret[$i]="5.gif"; break;
			case "6": $ret[$i]="6.gif"; break;
			case "7": $ret[$i]="7.gif"; break;
			case "8": $ret[$i]="8.gif"; break;
			case "9": $ret[$i]="9.gif"; break;
		}
	}

	for ($i=0;$i<sizeof($ret);$i++)
		echo "<img border=\"0\" src=\"images/$ret[$i]\">";


?>

Date : 2009-06-11 12:10:12 By : it53008
 


 

No. 27



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

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

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


นั่งอ่านๆๆๆ ไปแล้วก็เพลินดีอะครับ ได้ความรุ้ด้วย
Date : 2009-06-11 12:39:07 By : ddsure
 


 

No. 28



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

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

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

echo mysql_result($r,0);
-->
$counter = mysql_result($r,0);

เขียนถูกหมดแล้ว แก้แค่นิดเดียวเท่านั้นครับ
Date : 2009-06-11 12:45:15 By : num
 


 

No. 29

Guest


ขอบคุณมากเลยค่ะ ตอนนี้กำลังนั่งปรับปรุงเว็บไซต์อยู่ค่ะ ไม่ค่อยมีความรู้ทางด้านนี้เท่าไรเลย ถ้าจะเรียนเกี่ยวกับ PHP นี้ ควรจะเริ่มต้นยังไงบ้างค่ะ

ขอบคุณๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ มากๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ ค่ะ
Date : 2009-06-11 14:29:01 By : it53008
 


 

No. 30



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

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

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

ใน thaicreate คุณ win รวบรวมเนื้อหาเยอะดีครับเรียกได้ว่ามีเนื้อหาเกินหนังสือหลายๆ เล่มซะอีก
แต่อ่านจากเว็บอย่างเดียวอาจจะหนักไป ลองหาหนังสือมาอ่านก่อนดีกว่าครับ
แนะนำหนังสือของสำนักพิมพ์ provision หรือ witty group หรือหนังสืออะไรก็ได้ที่ชอบครับ

คำสั่งที่ควรจะเรียนรู้เป็นอันดับแรกๆ นอกจากโครงสร้างพื้นฐานแล้วก็คือคำสั่งเกี่ยวกับ array ครับยิ่งเรียนรู้มากจะยิ่งทำให้เขียนโปรแกรมได้ง่ายขึ้นครับ จากนั้นก็มา string, regular expression, date&time, session, file ฯลฯ พื้นฐานที่สำคัญๆ ที่ต้องใช้แน่ๆ ที่ผมจำได้ก็มีแค่นี้ครับเนื้อหาเกี่ยวกับเว็บเรียนกันไม่หมดครับ ก็ต้องลองใช้ลองหัดกันไปเรื่อยๆ ครับ ถ้ามีข้อสงสัยอะไรถามมาได้เลยครับ (แต่ห้ามเยอะ อิๆ )
Date : 2009-06-11 14:57:56 By : num
 


 

No. 31



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

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

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

อ้อต้องแม่น html ด้วยครับ อันนี้เว็บแรกของผมเอง อย่าลืมไปอ่านนะครับ อิๆ
dragon_html html tutorial

แต่ตอนถ้าจะให้ดีใช้ xhtml ครับ xhtml จะต่างกับ html ชัดๆ เลยก็ตรงที่
1. html จะตัวเล็กตัวใหญ่ก็ได้ แต่ xhtml จะต้องเป็นตัวอักษรตัวเล็กเท่านั้น
2. ทุกแท็กจะต้องมีมี tag ปิด ถ้าเป็น tag เดี่ยวๆ อย่างเช่น image หรือ br จะเขียน <image /> และ <br />
3. attribute จะต้องมี value เช่น <input type="checkbox" checked="checked" /> (ถ้าเป็น html จะเขียนแค่ checked)
มีกฎเกณฑ์อีกมากมายแต่ผมจำไม่ได้
ลองไปอ่านที่ http://www.w3schools.com/ ครับ
Date : 2009-06-11 15:14:58 By : num
 


 

No. 32

Guest


ได้โหลด dbcounter.zip ไปนั่งทำ แต่มีปัญหาที่ว่า ในหน้าของ stat.php เวลามันโชว์ผลออกมา ตัวมันติดเกินไป

ถ้าจะให้มันอยู่ในรูปของตาราง และมีหัวตารางว่า

ชื่อหน้า
วันที่
จำนวน

ต้องทำยังไงค่ะ

ขอบคุณค่ะ
Date : 2009-06-11 16:10:48 By : Guest
 


 

No. 33

Guest


ขอบคุณมากค่ะ เดี๋ยวจะไปศึกษาตามที่แนะนำให้นะค่ะ

ขอบคุณค่ะ
Date : 2009-06-11 16:23:49 By : it53008
 


 

No. 34

Guest


อันนี้เป็น counter ที่นำจำนวนการเข้าชมหน้า ซึ่งไม่ได้นับจำนวนคน

ยกตัวอย่างเช่น ถ้าเข้าไปหน้าแรกแล้วต่อจากนั้นเข้าไปดูหน้าอื่น แล้วกลับมาหน้าแรก มันก็จะนับอีกครั้ง

ซึ่งถ้าเราต้องการระบบ counter ที่สามารถเช็ค ip ได้และเช็คยอดผู้เข้าชมแต่ล่ะหน้าได้ด้วย ยกตัวอย่าง เช่น

วันที่ 1 หน้า index.php ip หมายเลข 001 เข้ามา 1 ครั้ง

วันที่ 1 หน้า index.php ip หมายเลข 002 เข้ามา 1 ครั้ง

วันที่ 1 หน้า index.php ip หมายเลข 001 เข้ามา 1 ครั้ง ก่อนหน้านี้เข้ามาแล้ว เข้าซ้ำในวันเดียวกันแต่ก็ให้นับค่าด้วย

วันที่ 2 หน้า index.php ip หมายเลข 001 เข้ามา 1 ครั้ง

วันที่ 2 หน้า show.php ip หมายเลข 002 เข้ามา 1 ครั้ง

สรุปยอดรวมหน้าเว็บไซต์ที่ถูกเปิดทั้งหมด 5 ครั้ง

วันที่ 1 มีคนเข้ามาเปิดหน้าเว็บไซต์ 3 ครั้ง

วันที่ 2 มีคนเข้ามาเปิดหน้าเว็บไซต์ 2 ครั้ง

จำนวนผู้มาเข้าชม 2 คน โดยดูจากหมายเลข IP

หน้าที่ถูกเปิดเยอะที่สุดคือหน้า index.php




*** ถ้าต้องการให้ Counter มันรายงานผลออกมาให้ลักษณะเหมือนตัวหนังสือสีแดง ต้องปรับ code counter ที่ให้มายังไงค่ะ
Date : 2009-07-17 10:43:55 By : Guest
 


 

No. 35

Guest


เอาข้อมูล ip ในแต่ละวันเก็บในตารางครับ

tb_ipaddr ตารางมี 2 column คือ ipaddress และ enter_date
ในแต่ละครั้งที่เพิ่มค่า counter ก็จะนำ ip ไปเก็บในตาราง tb_ipaddr ด้วยครับ
แต่ให้ตั้งค่า ipaddress และ date เป็น primary key ด้วยครับ เพื่อว่าถ้า ipaddr เดิม
มีการเข้าเว็บไซท์ซ้ำค่าจะได้ไม่ซ้ำกัน


เวลาจะหาว่าวันที่ 2009-07-17 เป็นวันที่เท่าไหร่ก็เพียงแค่ใช้ query
$c = mysql_query("SELECT COUNT(*) as c FROM tb_ipaddr WHERE enter_date='2009-07-17'");
echo 'มีคนเข้ามาในวันที่ 2009-07-17 จำนวน '.mysql_result($r,0,'c');
Date : 2009-07-20 09:19:07 By : num
 


 

No. 36

Guest


สงสัยค่ะ

1. ถ้าเราต้องการดูผลทั้งเดือน โดยไม่ต้องระบุวันที่ลงไป จะต้องเขียนแก้ยังไงค่ะ

2. แล้วในตาราง tb_ipaddr ต้องกำหนดค่าของ ipaddress และ enter_date เป็นอะไรค่ะ ตัวเลขใช่ไหมค่ะ

ขอบคุณค่ะ
Date : 2009-08-07 11:04:53 By : it53008
 


 

No. 37



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

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

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

$c = mysql_query("SELECT COUNT(*) as c FROM tb_ipaddr WHERE MONTH(enter_date)='7' AND YEAR(enter_date)='2009' ");
echo 'มีคนเข้ามาในเดือน 7 ปี 2009 จำนวน '.mysql_result($r,0,'c');

ความจริง ipaddress เก็บเป็น string ก็ได้ครับ
แต่ดูท่าข้อมูลจะเก็บเยอะดังนั้นเก็บเป็นตัวเลขจะเหมาะสมกว่าครับ (ใช้ INT UNSIGNED)
เวลา insert ค่าของ ipaddress จะใช้ฟังค์ชั่น INET_ATON เพื่อแปลง string เป็น int อย่างข้างล่างนี้ครับ
INSERT INTO tb_ipaddr(ipaddress,enter_date) VALUES ( INET_ATON('192.168.0.10'), '2009-07-10' )

แต่เวลาจะแสดงค่า ip ในรูปแบบเดิม จริงๆ จะต้องใช้ function แปลงค่า INET_NTOA แปลง int เป็น string กลับครับ
อย่างเช่น
SELECT INET_NTOA(ipaddress) FROM tb_ipaddr

อ่านเพิ่มเติมได้ที่
http://arjen-lentz.livejournal.com/44290.html

ส่วน enter_date เก็บเป็น date ครับ
มีบางคนใช้วิธีดัดแปลงเก็บเป็นตัวเลขแต่ไม่ต้องทำแบบนั้นก็ได้ครับ
Date : 2009-08-07 15:31:28 By : num
 


 

No. 38



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



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


งงค่ะ รันแล้วผลไม่ออกเลยค่ะ

1. สร้างตารางในฐานข้อมูลชื่อ tb_ipaddr มีฟิลด์ชื่อ ipaddress และ enter_date

2. มาใส่โค้ด 2 บรรทัดนี้
$c = mysql_query("SELECT COUNT(*) as c FROM tb_ipaddr WHERE MONTH(enter_date)='7' AND YEAR(enter_date)='2009' ");
echo 'มีคนเข้ามาในเดือน 7 ปี 2009 จำนวน '.mysql_result($r,0,'c');

ในหน้า dbcounter.php ต่อจากโค้ด

for ($i=0;$i<sizeof($ret);$i++)
echo "<img border=\"0\" src=\"images/$ret[$i]\">";

****** ไม่เห็นจะเก็บค่า ip เครื่องเลยค่ะ
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3. เราลองเข้าหน้านี้ https://www.thaicreate.com/community/mysql-insert-duplicate-key-update.html

และเอามาประยุกต์ดู ก็ยังแก้ไขออกมาไม่ได้น่ะ

รบกวนถามผู้รู้หน่อยค่ะ
Date : 2009-08-07 16:40:10 By : guest
 


 

No. 39



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

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

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

โค้ดตรงส่วนนี้เป็นแค่ส่วนแสดงผลครับ
$c = mysql_query("SELECT COUNT(*) as c FROM tb_ipaddr WHERE MONTH(enter_date)='7' AND YEAR(enter_date)='2009' ");
echo 'มีคนเข้ามาในเดือน 7 ปี 2009 จำนวน '.mysql_result($r,0,'c');

ใช้โค้ดนี้ใน dbcounter.php ครับ
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d');
mysql_query("INSERT INTO tb_ipaddr(ipaddress,enter_date) VALUES ( INET_ATON('$ip'), '$date' )");
Date : 2009-08-07 19:54:50 By : num
 


 

No. 40

Guest


ใช้โค้ดนี้ใน dbcounter.php ครับ
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d');
mysql_query("INSERT INTO tb_ipaddr(ipaddress,enter_date) VALUES ( INET_ATON('$ip'), '$date' )");


จากโค้ดตรงนี้ ถ้าเราต้องการปรับให้สามารถเช็คได้ว่า IP นี้ วันที่เท่านี้ มีหน้าเพจอะไรที่ได้เข้าไปบ้าง

ต้องแก้ไข หรือเพิ่มโค้ดตรงส่วนไหนค่ะ และในฐานข้อมูลต้องกำหนดค่าเป็นอย่างไร สามารถทำรวมกับตาราง counters ได้หรือไม่ ขอบคุณค่ะ
Date : 2009-08-10 10:18:21 By : it53008
 


 

No. 41



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

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

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

ถ้าทำแบบง่ายๆ ก็สร้าง column ใหม่ชื่อว่า cpage ใน ตาราง tb_ipaddr ครับ แล้วก็ปรับปรุงให้ทั้ง ipaddress,enter_date,cpage เปลี่ยนทั้ง 3 column เป็น primary key ทั้งหมดด้วยครับ
จะได้ไม่เพิ่มรายการข้อมูลซ้ำ

mysql_query("INSERT INTO tb_ipaddr(ipaddress,enter_date,cpage) VALUES ( INET_ATON('$ip'), '$date','$page_name' )");


แต่ถ้าอยากให้ประหยัดพื้นที่มากขึ้นให้สร้างตารางชื่อ
tb_page มี column page_id เป็น smallint และ column cpage เป็น varchar สัก 50
แล้วตารางต่างๆ จากเดิมที่เก็บ cpage ก็เปลี่ยนมาเก็บ page_id แทนแค่ 2 byte จากเดิมอาจจะต้องเก็บ 10-20 byte ต่อรายการครับ แต่ตรงนี้อย่าเพิ่งทำเลยครับ เพราะถ้าแก้ตรงนี้ต้องเปลี่ยนโค้ดเยอะเลยครับ
Date : 2009-08-10 18:39:01 By : num
 


 

No. 42



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


num นี่เก่งวุ้ย เดี๋ยวเรากรีดเลือดดุนยามาดื่มสาบานเป็นพี่น้องกัน

ดุนยายื่นแขนมาไอ้น้อง
Date : 2009-08-10 21:16:38 By : plakrim
 


 

No. 43



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

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

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


เอามีดมั้ยเพ่อั๋น
Date : 2009-08-10 22:58:40 By : panyapol
 


 

No. 44



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

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

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


เลือกแป๊ะก็ได้นะ ยืนมือมาไอ้น้อง
Date : 2009-08-11 02:56:36 By : plakrim
 


 

No. 45



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



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


ครบ 3 คน แล้วไช่ม๊ะ 555+
Date : 2009-08-11 02:56:46 By : danya
 


 

No. 46



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

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

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

ดีที่มาไม่ทันเวลา เอิกๆ
Date : 2009-08-11 07:40:49 By : num
 


 

No. 47



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



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



ลองทำดูแล้วค่ะ เอาโค้ดไปใส่ใน dbcounter.php

แต่ว่าค่า cpage มันไม่ลงในตาราง tb_ipaddr นะค่ะ ไม่ทราบว่าผิดตรงไหน แต่ค่า IP กับ วันที่ เก็บลงในตารางให้นะค่ะ แต่ IP มันเก็บค่าเป็น

ipaddress enter_date cpage
2130706433 2009-08-10
2130706433 2009-08-11


ไม่ทราบว่าต้องแก้ไขยังไงค่ะ
ขอบคุณค่ะ



Code (PHP)
<?php
if (!defined('CONNECTED')){
	die('require connect.php');
}

if (PHP_VERSION>5){date_default_timezone_set("Asia/Bangkok");}
//$page_name = basename($_SERVER['SCRIPT_NAME']);
//$today = date('Y-m-d');

	$ip = $_SERVER['REMOTE_ADDR'];
	$date = date('Y-m-d');
	//mysql_query("INSERT INTO tb_ipaddr(ipaddress,enter_date) VALUES (INET_ATON('$ip'),'$date')");
	mysql_query("INSERT INTO tb_ipaddr(ipaddress,enter_date,cpage) VALUES (INET_ATON('$ip'),'$date','$page_name')");


//load counter row of this page - today
$r = mysql_query(
	"SELECT cvalue FROM counters WHERE cpage='$page_name' AND cdate='$today'"
);
if (!$r){die(mysql_error());}

if (mysql_num_rows($r)==0){
	//insert new row if it's first opening this page
	$counter = 1;
	mysql_query(
		"INSERT INTO counters (cpage,cdate,cvalue) VALUES('$page_name','$today',1)"
	);
	if (!$r){die(mysql_error());}
}else{
	//update the row if it's second opening this page
	$counter = mysql_result($r,0)+1;	
	mysql_query(
		"UPDATE counters SET cvalue=$counter WHERE cpage='$page_name' AND cdate='$today' "
	);
	if (!$r){die(mysql_error());}
}

//show sum counters
	$r = mysql_query('SELECT SUM(cvalue) FROM counters');

	$counter = mysql_result($r,0); 

	$counter=sprintf("%05d",$counter);

	for ($i=0;$i<strlen($counter);$i++)
	{
		$result=$counter[$i];

		switch($result)
		{
			case "0": $ret[$i]="0.gif"; break;
			case "1": $ret[$i]="1.gif"; break;
			case "2": $ret[$i]="2.gif"; break;
			case "3": $ret[$i]="3.gif"; break;
			case "4": $ret[$i]="4.gif"; break;
			case "5": $ret[$i]="5.gif"; break;
			case "6": $ret[$i]="6.gif"; break;
			case "7": $ret[$i]="7.gif"; break;
			case "8": $ret[$i]="8.gif"; break;
			case "9": $ret[$i]="9.gif"; break;
		}
	}

	for ($i=0;$i<sizeof($ret);$i++)
		echo "<img border=\"0\" src=\"images/$ret[$i]\">";




?>

Date : 2009-08-11 17:40:56 By : it53008
 


 

No. 48



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

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

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

ตรงนี้ครับ
//$page_name = basename($_SERVER['SCRIPT_NAME']);
$page_name = basename($_SERVER['SCRIPT_NAME']);
Date : 2009-08-11 17:54:07 By : num
 


 

No. 49



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

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

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

ลืมบอกไปตอนแสดงผลใช้คำสั่งนี้ครับ
$r = mysql_query("SELECT INET_NTOA(ipaddress) AS ip FROM tb_ipaddr");
while($row = mysql_query($r)){
echo ', ',$row['ip'];
}
Date : 2009-08-11 18:49:49 By : num
 


 

No. 50

Guest


ส่วนตรงที่แสดงผล

$r = mysql_query("SELECT INET_NTOA(ipaddress) AS ip FROM tb_ipaddr");
while($row = mysql_query($r)){
echo ', ',$row['ip'];
}


เราต้องสร้างหน้าขึ้นมาใหม่เลยใช่ไหมค่ะ แล้วก็ทำการติดต่อฐานข้อมูล โดยใช้โค้ดจากข้างบนนี้ใช่ไหมค่ะ

<?
$host="localhost";
$username="root";
$password="";
$db="business3";
$tb="tb_ipaddr";
mysql_connect( $host,$username,$password) or die ("ติดต่อกับฐานข้อมูล Mysql ไม่ได้ ");

mysql_select_db($db) or die("เลือกฐานข้อมูลไม่ได้");

$r = mysql_query("SELECT INET_NTOA(ipaddress) AS ip FROM tb_ipaddr");
while($row = mysql_query($r)){
echo ', ',$row['ip'];
}


mysql_close();
?>




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

CREATE TABLE `tb_ipaddr` (
`enter_date` DATE NOT NULL,
`ipaddress` INT(10) NOT NULL DEFAULT '0',
`cpage` VARCHAR(50) NOT NULL,
PRIMARY KEY (`cdate`)
) ENGINE=MYISAM




ต้องขอบคุณ คุณ num มากเลยนะค่ะ ที่มาให้ความรู้มากมายขนาดนี้ นับว่าเป็นประโยชน์มากเลยค่ะ

Date : 2009-08-12 17:15:08 By : กุ้ง
 


 

No. 51

Guest


ทำไมคุณหนุ่มเก่งจังอ่ะคะ
อยากเก่งบ้างจัง
แต่งคงไม่ไหวค่ะ

เข้ามาชื่นชมค่า
Date : 2010-12-29 00:54:56 By : เด็กพิดโลก
 


 

No. 52



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

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

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

Go to : MySQL INSERT DUPLICATE KEY UPDATE

ใช้ตัวนี้ก้ได้ครับ นับเป็นวันครับ
Date : 2010-12-29 06:34:18 By : webmaster
 


 

No. 53



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

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

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

ตัวอย่างการสร้าง PHP + Counter แบบละเอียดด้วย PHP กับ MySQL ครับ

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;



Go to : PHP สร้าง Counter แบบล่ะเอียด Today, Yesterday,This Month, Last Month, This Year, Last Year
Date : 2011-04-26 11:39:15 By : webmaster
 


 

No. 54

Guest


ช่วยหน่อยนะค่ะ พอดีสร้างไฟล์นี้ add_product.php รันแล้วมันขึ้นerror " Unknown system variable 'name' " นี้ค่ะ แก้ไม่ได้ น้องใหม่หัดเขียนเว็บน่ะค่ะ ไม่รู้ว่าผิดตรงใหนค่ะ
โค้ด add_product.php

Code (PHP)
<?
include("./utility.php");
connect_db();

$name1 =$_REQUEST["txtname"];
$error ="";
if($name1 ==""){
	$error .="ไม่มีชื่อสินค้า<br/>";
}else{

$sql="INSERT INTO product(name) values($name1)";
		mysql_query($sql) or die(mysql_error());


}

if ($error ==""){
	$sql="INSERT INTO product"
			."(name)"
			."VALUES('$name1')";
		mysql_query($sql) or die(mysql_error());                              
}
if ($error ==""){
	$resut ="เพิ่มสินค้าเรียบร้อยแล้ว<br/>"
			."<a href='show_product.php'>แสดงสินค้า</a>";
}
else{
	$rresult =$error
				."<a href='#' onclick='history.back();"
				."return false;'>กลับไป</a>";
} 
mysql_close(); 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtmltransitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type"
			content="text/html;charset=utf-8"/>
			<title>   </title>
</head>
<body>
<?=$result?>
</body>
</html>

Date : 2011-12-17 14:51:39 By : น้องใหม่หัดทำเว็บ
 


 

No. 55

Guest


ขอความกรุณาพี่กูรู ช่วยดูโค้ดให้หนูด้วยนะคะ หนูต้องการเพิ่ม counter โดยที่ไม่ต้องรีเฟรชค่ะ ก็ได้นำโค้ดพี่ ๆ ข้างบนมาแปะดู หนูทำด้วย html ค่ะ หนูต้องแก้ไขอย่างไรถูกจะได้ตามวัตถุประสงค์หรอคะ


Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!-- DW6 -->
<head>
<!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
<title>Main</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<link rel="stylesheet" href="../Graphic/mm_travel2.css" type="text/css" />
<style type="text/css">
<!--
a:link {
	color: #3366CC;
	text-decoration: none;
}
a:hover {
	color: #3366CC;
	text-decoration: underline;
}
a:visited {
	text-decoration: none;
	color: #3366CC;
}
a:active {
	text-decoration: none;
}
body,td,th {
	font-size: 24px;
}
.style1 {
	color: #FF9900;
	font-weight: bold;
}
.style2 {color: #FF6600}
.style3 {color: #FFCC00}
-->
</style></head>
<body bgcolor="#C0DFFD">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr bgcolor="#3366CC">
    <td width="382" rowspan="3" nowrap="nowrap"><img src="../Graphic/mm_travel_photo.jpg" alt="Header image" width="382" height="127" border="0" /></td>
    <td width="378" height="63" align="center" valign="bottom" nowrap="nowrap" id="logo"><strong>เทคนิคการดึงความรู้ปฏิบัติ</strong></td>
    <td height="63" rowspan="2"></td>
  </tr>
  <tr bgcolor="#3366CC">
    <td height="64" rowspan="2" align="center" valign="top" nowrap="nowrap" id="logo"><strong>จากคนทำงาน</strong></td>
  </tr>
  <tr bgcolor="#3366CC">
    <td height="64">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="#003366"><img src="../Graphic/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  </tr>

  <tr bgcolor="#CCFF99">
  	<td height="25" colspan="3">&nbsp;</td>
  </tr>
 <tr>
    <td colspan="3" bgcolor="#003366"><img src="../Graphic/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
  </tr>
</table>
<table width="760" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="40">&nbsp;</td>
    <td><table width="100%" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td colspan="3" class="pageName">&nbsp;</td>
      </tr>
      <tr>
        <td colspan="3" class="pageName"><strong>อบรมเชิงปฏิบัติการ</strong></td>
      </tr>
      <tr>
        <td colspan="3" class="pageName"><strong>เทคนิคการดึงความรู้ปฏิบัติจากคนทำงาน</strong><br />
          <strong>(Success  story teller and Note taker)</strong></td>
      </tr>
      <tr>
        <td colspan="3" class="subHeader">วันที่  22-23  กันยายน 2554 <br />
ณ.เนเชอรัลบีช  รีสอร์ท อ.แหลมสิงห์ จ.จันทบุรี</td>
      </tr>
      <tr>
        <td width="409" align="center" class="bodyText"><span class="subHeader"><img src="../Photo/DSC00933.jpg" alt="large product photo" width="333" height="250" border="0" /></span></td>
        <td width="15" class="bodyText"></td>
        <td width="363" valign="bottom" class="bodyText"><p><span class="subHeader">สรุปสาระจากการฝึกอบรม</span><br />
              <a href="bar.html">1.กิจกรรม  BAR  (Before  Action Review)</a><br />
              <a href="ฟัง ฟัง ฟัง.html">2.ฟัง ฟัง ฟัง</a><br />
              <a href="เห็นอะไรในตัวฉัน.html">3.เห็นอะไรในตัวฉัน</a><br />
              <a href="ความรู้มือหนึ่ง.html">4.ความรู้มือหนึ่ง</a><br />
              <a href="/KM/Note taker/Web pages/เรื่องฉันเรื่องเธอ.html">5.เรื่องฉันเรื่องเธอ</a><br />
              <a href="/KM/Note taker/Web pages/เรื่องนี้สอนให้รู้ว่า.html">6.เรื่องนี้สอนให้รู้ว่า</a><br />
              <a href="/KM/Note taker/Web pages/karaoke.html">7.karaoke</a><br />
              <a href="/KM/Note taker/Web pages/ดึงความรู้ปฏิบัติ.html">8.ดึงความรู้ปฏิบัติ</a><br />
              <a href="/KM/Note taker/Web pages/เล่าเรื่องฉัน เขียนเรื่องเธอ.html">9.เล่าเรื่องฉัน เขียนเรื่องเธอ</a><br />
              <a href="/KM/Note taker/Web pages/shopping idea .html">10.shopping idea </a><br />
              <a href="/KM/Note taker/Web pages/กิจกรรม AAR (After Action Review).html">11.กิจกรรม AAR (After Action Review)</a></p>              </td>
      </tr>
      <tr>
        <td class="bodyText"><div align="justify">ตั้งแต่แรกเริ่มของการเดินทาง  ทุกคนกระตือรือร้นมาที่เนเชอรัลบีช รีสอร์ท อ.แหลมสิงห์  ฝนตกปรอยๆตั้งแต่เช้า ที่พักชายทะเลจึงชุ่มช่ำ บรรยากาศหน้าห้องประชุม  มีสมาชิกทยอยกันมาลงทะเบียน ด้วยบรรยากาศสบายๆ และอิ่มอร่อยกับอาหารเช้าที่เตรียมไว้ต้อนรับ  ทุกคนยิ้มแย้ม พูดคุยทักทายกันอย่าง เป็นกันเอง สนุกสนาน <br />
  &nbsp;&nbsp;&nbsp;&nbsp;หลังรับประทานอาหารเช้า แต่ละคนทยอยเข้าห้องประชุม  ทุกคนดูตื่นเต้น กระตือรือร้น กับสิ่งที่กำลังจะได้พบในอีกไม่ช้านี้ <br />
  &nbsp;&nbsp;&nbsp;&nbsp;เวลาประมาณ 8.35 น.  พี่หมู (นภาพร)  เกริ่นนำถึงเรื่องราวความเป็นมาของการประชุมครั้งนี้   เชิญ อาจารย์  ทนง กล่าวเปิดงานและและเชิญวิทยากร  อย่างเป็นกันเอง คือ อาจารย์อุ (อุไรวรรณ เทิดบารมี) และอาจารย์หญิง (นภินทร ศิริไทย)  และแนะนำ ส.ค.ส (สถาบันส่งเสริมการจัดการความรู้  เพื่อสังคม)  อาจารย์ นั่งที่พื้นอย่างเป็นกันเอง  ทำให้สมาชิกที่ประชุมที่นั่งอยู่บนเก้าอี้ ทยอยลงมานั่งพื้นพร้อมหมอนนิ่มๆ คนละใบ จนสุดท้าย   ทุกคน ต่างนั่งอยู่ที่พื้นล้อมเป็นวง <td class="bodyText">&nbsp;</td>
        <td valign="top" class="bodyText"><a href="list.html">รายชื่อ Note taker และ ผู้เข้าร่วมฝึกอบรม</a><br />
          <a href="certificate.html">รูปรับประกาศนียบัตร</a><br />
          <a href="เรื่องเล่าที่เราภูมิใจ.html">เรื่องเล่าที่เราภูมิใจ</a><br />
          วีดีโอ KM โรงพยาบาลตากใบ<br />
          <table width="248" height="314" border="0" cellpadding="0" cellspacing="0">
            <tr>
              <td height="314"><embed src="/KM/Note taker/VDO/bantak.wmv" width="400" height="300"autostart="False" align="top"></embed></td>
            </tr>
          </table>
          <br />
          </td>
      </tr>
      <tr>
        <td class="bodyText"><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="50%" height="160" align="left" valign="middle"><div align="left"><img width="161" height="139" src="../Photo/main_clip_image002_0000.jpg" /></div></td>
            <td width="50%" height="160" align="right" valign="middle"><div align="right"><img width="161" height="139" src="../Photo/main_clip_image002.jpg" /></div></td>
          </tr>
          <tr>
            <td height="160" align="center" valign="middle"><div align="left"><img width="161" height="139" src="../Photo/main_clip_image002_0001.jpg" /></div></td>
            <td height="160" align="right" valign="middle"><div align="right"><img width="161" height="139" src="../Photo/main_clip_image002_0002.jpg" /></div></td>
          </tr>
        </table></td>
        <td class="bodyText">&nbsp;</td>
        <td class="bodyText">&nbsp;</td>
      </tr>
      <tr>
            <td class="bodyText style1"><p><a href="http://www.amazingcounters.com"><span class="style2">จำนวนผู้เข้าชม <span class="style3">&gt;&gt;</span></span> <p>
<?
$filename="number.txt";
$fp=fopen($filename,"r");
$get_number=fread($fp,filesize($filename));
fclose($fp);
if(!isset($_SESSION['NO_REFRESH'])
{
$get_number=$get_number+1;
$fp=fopen($filename,"w";
fwrite($fp,$get_number);
fclose($fp);
}
$counter=sprintf("%05d",$get_number);
for($i=0;$i<5;$i++){
echo"<img src='images/$gcounter[$i].gif'>";
}
?>
&nbsp;</p></td></h6>
          <td class="bodyText">&nbsp;</td>
        <td class="bodyText">&nbsp;</td>
      </tr>
    </table></td>
  </tr>


</table>
</body>
</html>

Date : 2011-12-28 16:11:27 By : wiki
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอ code counter แบบละเอียดหน่อยค่ะ ขอ code 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 03
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 อัตราราคา คลิกที่นี่