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,027

HOME > PHP > PHP Forum > รบกวนขอสอบถามความเข้าใจเกี่ยวกับ PHP OOP หน่อยครับ พอดีกำลังเริ่มต้่นศึกษาจากตัวอย่าง Class ครับ



 

รบกวนขอสอบถามความเข้าใจเกี่ยวกับ PHP OOP หน่อยครับ พอดีกำลังเริ่มต้่นศึกษาจากตัวอย่าง Class ครับ

 



Topic : 111400



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



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



อันนี้ผมเริ่มศึกษาของ OpenCart นะครับ เกี่ยวกับการ insert ข้อมูล

Code (PHP)
	public function insert() {
		$this->language->load('catalog/category');

		$this->document->setTitle($this->language->get('heading_title'));
		
		$this->load->model('catalog/category');
		
		if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
			$this->model_catalog_category->addCategory($this->request->post);

			$this->session->data['success'] = $this->language->get('text_success');

			$url = '';

			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}
						
			$this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'] . $url, 'SSL')); 
		}

		$this->getForm();
	}


จากตัวอย่าง ถ้ามีการเรียก function insert()

Code (PHP)
$this->load->model('catalog/category');


บันทัดนี้เรียกใช้งาน model จากไฟล์ category ใช่ไหมครับ

Code (PHP)
if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
			$this->model_catalog_category->addCategory($this->request->post);

			$this->session->data['success'] = $this->language->get('text_success');

			$url = '';

			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}
						
			$this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'] . $url, 'SSL')); 
		}


บันทัดนี้ หากมีการ request ค่า มาเป็นค่า POST หรือ เช็คค่า validateForm

Code (PHP)
$this->model_catalog_category->addCategory($this->request->post);


จะทำหน้าที่ เพิ่มหมวดหมู่สินค่าลงใน DB โดยเรียกการทำงานภายใต้ Class addCategory ที่อยู่ใน Model

Code (PHP)
$this->session->data['success'] = $this->language->get('text_success');


บรรทัดนี้ คือ ถ้า session มี ข้อมูลส่งมาเป็น success ก็ให้ไปเรียกใช้ get('text_success'); เพื่อ response หรือ แสดงข้อความว่าเพิ่มข้อมูลสำเร็จ

Code (PHP)
			if (isset($this->request->get['page'])) {
				$url .= '&page=' . $this->request->get['page'];
			}



บรรทัดนี้ คือ ถ้าค่า GET['PAGE'] มีค่า ก็กำหนดให้ &page= ค่า GET['PAGE'] เพื่อนำมาใช้กับ funcion pagination แบ่งหน้า

Code (PHP)
$this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'] . $url, 'SSL')); 


บรรทัดนี้ คือ สั่งให้ redirect กลับไปยังหน้าเดิม และกำหนด ค่า token ตามด้วย $url แบ่งเพจ ถ้ามีค่า ใช่หรือไม่ครับ


Code (PHP)
public function addCategory($data) {
		$this->db->query("INSERT INTO " . DB_PREFIX . "category SET parent_id = '" . (int)$data['parent_id'] . "', `top` = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', `column` = '" . (int)$data['column'] . "', sort_order = '" . (int)$data['sort_order'] . "', status = '" . (int)$data['status'] . "', date_modified = NOW(), date_added = NOW()");

		$category_id = $this->db->getLastId();
				
		if (isset($data['image'])) {
			$this->db->query("UPDATE " . DB_PREFIX . "category SET image = '" . $this->db->escape(html_entity_decode($data['image'], ENT_QUOTES, 'UTF-8')) . "' WHERE category_id = '" . (int)$category_id . "'");
		}
		
		foreach ($data['category_description'] as $language_id => $value) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "'");
		}

		// MySQL Hierarchical Data Closure Table Pattern
		$level = 0;
		
		$query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category_path` WHERE category_id = '" . (int)$data['parent_id'] . "' ORDER BY `level` ASC");
		
		foreach ($query->rows as $result) {
			$this->db->query("INSERT INTO `" . DB_PREFIX . "category_path` SET `category_id` = '" . (int)$category_id . "', `path_id` = '" . (int)$result['path_id'] . "', `level` = '" . (int)$level . "'");
			
			$level++;
		}
		
		$this->db->query("INSERT INTO `" . DB_PREFIX . "category_path` SET `category_id` = '" . (int)$category_id . "', `path_id` = '" . (int)$category_id . "', `level` = '" . (int)$level . "'");

		if (isset($data['category_filter'])) {
			foreach ($data['category_filter'] as $filter_id) {
				$this->db->query("INSERT INTO " . DB_PREFIX . "category_filter SET category_id = '" . (int)$category_id . "', filter_id = '" . (int)$filter_id . "'");
			}
		}
				
		if (isset($data['category_store'])) {
			foreach ($data['category_store'] as $store_id) {
				$this->db->query("INSERT INTO " . DB_PREFIX . "category_to_store SET category_id = '" . (int)$category_id . "', store_id = '" . (int)$store_id . "'");
			}
		}
		
		// Set which layout to use with this category
		if (isset($data['category_layout'])) {
			foreach ($data['category_layout'] as $store_id => $layout) {
				if ($layout['layout_id']) {
					$this->db->query("INSERT INTO " . DB_PREFIX . "category_to_layout SET category_id = '" . (int)$category_id . "', store_id = '" . (int)$store_id . "', layout_id = '" . (int)$layout['layout_id'] . "'");
				}
			}
		}
						
		if ($data['keyword']) {
			$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'");
		}
		
		$this->cache->delete('category');
	}



พอดีผมนั่งศึกษาหาข้อมูลเกี่ยวกับ PHP OOP แบบ MVC เลยนั่งแกะ CODE ดูวันนี้เพื่อทำความเข้าใจ แต่ไม่รู้ว่าผมจะเข้าใจถูกต้องไหมครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-09-18 00:35:01 By : asustak View : 1095 Reply : 1
 

 

No. 1



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



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

เยี่ยม

Quote:
บันทัดนี้ หากมีการ request ค่า มาเป็นค่า POST หรือ เช็คค่า validateForm


ไม่ใช่ "หรือ" แต่เครื่องหมาย && คือ "และ" หมายถึง ต้องเป็นจริงทุกเงื่อนไข

Quote:
บรรทัดนี้ คือ ถ้า session มี ข้อมูลส่งมาเป็น success ก็ให้ไปเรียกใช้ get('text_success'); เพื่อ response หรือ แสดงข้อความว่าเพิ่มข้อมูลสำเร็จ


์NO บรรทัดนี้เป็นแค่การกำหนดค่าให้กับ session ไม่ได้มีการตรวจสอบเงื่อนไขตามที่เข้าใจ (เครื่องหมาย =)


Quote:
บรรทัดนี้ คือ สั่งให้ redirect กลับไปยังหน้าเดิม และกำหนด ค่า token ตามด้วย $url แบ่งเพจ ถ้ามีค่า ใช่หรือไม่ครับ


redirect แนบ parameter






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-05-30 14:26:06 By : PhrayaDev
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนขอสอบถามความเข้าใจเกี่ยวกับ PHP OOP หน่อยครับ พอดีกำลังเริ่มต้่นศึกษาจากตัวอย่าง Class ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่