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 > โค๊ดตัวนับ (Counter) มีปัญหาครับ มีตัวอย่างโค๊ด กับตัว Error ให้ดูครับ



 

โค๊ดตัวนับ (Counter) มีปัญหาครับ มีตัวอย่างโค๊ด กับตัว Error ให้ดูครับ

 



Topic : 065981



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



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




นี่คือส่วนที่แสดงข้อความ Error ครับ

Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 524288 bytes) in C:\AppServ\www\inc\counter.inc.php on line 103


และนี่คือโค๊ดที่เขาแจ้งว่า Error

Code (PHP)
<?php
class Counter{
	var $TbCounter = "tu_counter";

	function SetCounter($TheIP=NULL){
		if(empty($TheIP))return false;

		$Field = "ip,createdate";
		$Value = "'$TheIP',NOW()";

		require_once("dbconnect.inc.php");
		$sql = "INSERT INTO ".$this->TbCounter." ($Field) VALUES($Value)";
		mysql_query($sql) or die($sql."&nbsp;:&nbsp;".mysql_errno()."&nbsp;-&gt;&nbsp;".mysql_error());
		unset($sql,$Field,$Value);
		return mysql_insert_id();
	}//End SetCounter
	
	function Browse($TheIP=NULL,$DspCondition=NULL,$RecordStart=NULL,$RecordPerPage=NULL,$Order=NULL){
		$Field = "ip,createdate";
		$Condition = $ReturnResult = array();
		if(!empty($TheIP)) $Condition[] = " ip='$TheIP'";
		if($DspCondition=="this week") $Condition[] = " createdate BETWEEN DATE_SUB(CURDATE(),INTERVAL ".date("w")." DAY) AND NOW()";
		else if($DspCondition=="last week")$Condition[] = " createdate BETWEEN DATE_SUB(CURDATE(),INTERVAL ".(date("w")+7)." DAY) AND DATE_SUB(CURDATE(),INTERVAL ".date("w")." DAY)";
		else if($DspCondition=="this month") $Condition[] = " MONTH(createdate)=MONTH(CURDATE())";
		else if($DspCondition=="last month")$Condition[] = " MONTH(createdate)=MONTH(CURDATE())-1";
		else if($DspCondition=="this year")$Condition[] = " YEAR(createdate)=YEAR(CURDATE())";
		else if($DspCondition=="last year")$Condition[] = " YEAR(createdate)=YEAR(CURDATE())-1";

		if(empty($TheIP))$Field .= ",COUNT(ip) AS visit";
		$sql = "SELECT $Field FROM ".$this->TbCounter;
		if(count($Condition)) $sql .=" WHERE ".implode(" AND ",$Condition);
		if(empty($TheIP))$sql .= " GROUP BY ip ";
		if(!empty($Order)) $sql .= " ORDER BY $Order";
		else $sql .= " ORDER BY createdate DESC";
		if(is_numeric($RecordStart) AND is_numeric($RecordPerPage)) $sql .= " LIMIT $RecordStart,$RecordPerPage";

		require_once("dbconnect.inc.php");
		$result = mysql_query($sql) or die($sql."&nbsp;:&nbsp;".mysql_errno()."&nbsp;-&gt;&nbsp;".mysql_error());
		while($row= mysql_fetch_array($result)){
			$Value = array();
			for($index=0;$index<mysql_num_fields($result);$index++){
				$Field = mysql_fetch_field($result,$index);
				$Value[$Field->name] = $row[$Field->name];
			}//End while
			$ReturnResult[] = $Value;
		}//End while
		unset($sql,$Field,$Condition);
		return $ReturnResult;
	}//End Browse

	function BrowseDetail($TheIP=NULL,$DspCondition=NULL,$RecordStart=NULL,$RecordPerPage=NULL,$Order=NULL){
		$Field = "ip,createdate";
		$Condition = $ReturnResult = array();
		if(!empty($TheIP)) $Condition[] = " ip='$TheIP'";
		if($DspCondition=="this week") $Condition[] = " createdate BETWEEN DATE_SUB(CURDATE(),INTERVAL ".date("w")." DAY) AND CURDATE()";
		else if($DspCondition=="last week")$Condition[] = " createdate BETWEEN DATE_SUB(CURDATE(),INTERVAL ".(date("w")+7)." DAY) AND DATE_SUB(CURDATE(),INTERVAL ".date("w")." DAY)";
		else if($DspCondition=="this month") $Condition[] = " MONTH(createdate)=MONTH(CURDATE())";
		else if($DspCondition=="last month")$Condition[] = " MONTH(createdate)=MONTH(CURDATE())-1";
		else if($DspCondition=="this year")$Condition[] = " YEAR(createdate)=YEAR(CURDATE())";
		else if($DspCondition=="last year")$Condition[] = " YEAR(createdate)=YEAR(CURDATE())-1";

		$sql = "SELECT $Field FROM ".$this->TbCounter;
		if(count($Condition)) $sql .=" WHERE ".implode(" AND ",$Condition);
		if(!empty($Order)) $sql .= " ORDER BY $Order";
		if(!empty($Order)) $sql .= " ORDER BY createdate DESC";
		if(is_numeric($RecordStart) AND is_numeric($RecordPerPage)) $sql .= " LIMIT $RecordStart,$RecordPerPage";

		require_once("dbconnect.inc.php");
		$result = mysql_query($sql) or die($sql."&nbsp;:&nbsp;".mysql_errno()."&nbsp;-&gt;&nbsp;".mysql_error());
		while($row= mysql_fetch_array($result)){
			$Value = array();
			for($index=0;$index<mysql_num_fields($result);$index++){
				$Field = mysql_fetch_field($result,$index);
				$Value[$Field->name] = $row[$Field->name];
			}//End while
			$ReturnResult[] = $Value;
		}//End while
		unset($sql,$Field,$Condition);
		return $ReturnResult;
	}//End BrowseDetail

	function GetCounter($TheIP=NULL,$Date=NULL,$Month=NULL,$Year=NULL,$RecordStart=NULL,$RecordPerPage=NULL,$Order=NULL){
		$Field = "ip,createdate";
		$Condition = $ReturnResult = array();
		if(!empty($TheIP)) $Condition[] = " ip='$TheIP'";
		if(!empty($Date) && !empty($Month) && !empty($Month)) $Condition[] = " DATE_FORMAT(createdate,'%Y-%m-%d')='$Year-$Month-$Date'";
		elseif(!empty($Month) && !empty($Month)) $Condition[] = " DATE_FORMAT(createdate,'%Y-%m')='$Year-$Month'";
		elseif(!empty($Year)) $Condition[] = " DATE_FORMAT(createdate,'%Y')='$Year'";

		$sql = "SELECT $Field FROM ".$this->TbCounter;
		if(count($Condition)) $sql .=" WHERE ".implode(" AND ",$Condition);
		if(!empty($Order)) $sql .= " ORDER BY $Order";
		if(is_numeric($RecordStart) AND is_numeric($RecordPerPage)) $sql .= " LIMIT $RecordStart,$RecordPerPage";

		require_once("dbconnect.inc.php");
		$result = mysql_query($sql) or die($sql."&nbsp;:&nbsp;".mysql_errno()."&nbsp;-&gt;&nbsp;".mysql_error());
		while($row= mysql_fetch_array($result)){
			$Value = array();
			for($index=0;$index<mysql_num_fields($result);$index++){
				$Field = mysql_fetch_field($result,$index);
				$Value[$Field->name] = $row[$Field->name];
			}//End while
			$ReturnResult[] = $Value;        //บรรทัดนี้ละครับที่บอกว่ามีปัญหา
		}//End while
		unset($sql,$Field,$Condition);
		return $ReturnResult;
	}//End GetCounter
	
	function GetUserIP(){
	   if (isset($_SERVER)) {
		  if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
			 return $_SERVER["HTTP_X_FORWARDED_FOR"];
		  if (isset($_SERVER["HTTP_CLIENT_IP"]))
			 return $_SERVER["HTTP_CLIENT_IP"];
		  return $_SERVER["REMOTE_ADDR"];
	   }
	   if (getenv('HTTP_X_FORWARDED_FOR'))
		  return getenv('HTTP_X_FORWARDED_FOR');
	   if (getenv('HTTP_CLIENT_IP'))
		  return getenv('HTTP_CLIENT_IP');
	   return getenv('REMOTE_ADDR');
	}
}//End Counter
?>




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-05 15:08:13 By : narak0001 View : 950 Reply : 4
 

 

No. 1



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



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


ไม่แน่ใจว่าเป็นที่ขนาดของไฟล์ที่จัดเก็บหรือเปล่าอะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-05 15:16:06 By : narak0001
 


 

No. 2



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



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

แก้ memory_limit ใน php.ini แล้ว restart apache ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-05 15:25:24 By : ppanchai
 

 

No. 3



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



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


ผมต้องปรับบรรทัด 35 ใช่หรือไม่ครับ ที่มีเป็นโค๊ด

if(is_numeric($RecordStart) AND is_numeric($RecordPerPage)) $sql .= " LIMIT $RecordStart,$RecordPerPage";

แล้วผมต้องปรับแก้อย่างไรครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-05 16:22:49 By : narak0001
 


 

No. 4



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

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

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

Go to : รบกวนช่วยดู error: ให้หน่อยครับ... Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 49 bytes)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-05 16:53:11 By : webmaster
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : โค๊ดตัวนับ (Counter) มีปัญหาครับ มีตัวอย่างโค๊ด กับตัว Error ให้ดูครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 อัตราราคา คลิกที่นี่