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

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


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

 
Topic : 111400



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



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


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

Code (PHP)
01.public function insert() {
02.    $this->language->load('catalog/category');
03. 
04.    $this->document->setTitle($this->language->get('heading_title'));
05.     
06.    $this->load->model('catalog/category');
07.     
08.    if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
09.        $this->model_catalog_category->addCategory($this->request->post);
10. 
11.        $this->session->data['success'] = $this->language->get('text_success');
12. 
13.        $url = '';
14. 
15.        if (isset($this->request->get['page'])) {
16.            $url .= '&page=' . $this->request->get['page'];
17.        }
18.                     
19.        $this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'] . $url, 'SSL'));
20.    }
21. 
22.    $this->getForm();
23.}


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

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


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

Code (PHP)
01.if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validateForm()) {
02.            $this->model_catalog_category->addCategory($this->request->post);
03. 
04.            $this->session->data['success'] = $this->language->get('text_success');
05. 
06.            $url = '';
07. 
08.            if (isset($this->request->get['page'])) {
09.                $url .= '&page=' . $this->request->get['page'];
10.            }
11.                         
12.            $this->redirect($this->url->link('catalog/category', 'token=' . $this->session->data['token'] . $url, 'SSL'));
13.        }


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

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


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

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


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

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


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

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


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


Code (PHP)
01.public function addCategory($data) {
02.        $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()");
03. 
04.        $category_id = $this->db->getLastId();
05.                 
06.        if (isset($data['image'])) {
07.            $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 . "'");
08.        }
09.         
10.        foreach ($data['category_description'] as $language_id => $value) {
11.            $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']) . "'");
12.        }
13. 
14.        // MySQL Hierarchical Data Closure Table Pattern
15.        $level = 0;
16.         
17.        $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category_path` WHERE category_id = '" . (int)$data['parent_id'] . "' ORDER BY `level` ASC");
18.         
19.        foreach ($query->rows as $result) {
20.            $this->db->query("INSERT INTO `" . DB_PREFIX . "category_path` SET `category_id` = '" . (int)$category_id . "', `path_id` = '" . (int)$result['path_id'] . "', `level` = '" . (int)$level . "'");
21.             
22.            $level++;
23.        }
24.         
25.        $this->db->query("INSERT INTO `" . DB_PREFIX . "category_path` SET `category_id` = '" . (int)$category_id . "', `path_id` = '" . (int)$category_id . "', `level` = '" . (int)$level . "'");
26. 
27.        if (isset($data['category_filter'])) {
28.            foreach ($data['category_filter'] as $filter_id) {
29.                $this->db->query("INSERT INTO " . DB_PREFIX . "category_filter SET category_id = '" . (int)$category_id . "', filter_id = '" . (int)$filter_id . "'");
30.            }
31.        }
32.                 
33.        if (isset($data['category_store'])) {
34.            foreach ($data['category_store'] as $store_id) {
35.                $this->db->query("INSERT INTO " . DB_PREFIX . "category_to_store SET category_id = '" . (int)$category_id . "', store_id = '" . (int)$store_id . "'");
36.            }
37.        }
38.         
39.        // Set which layout to use with this category
40.        if (isset($data['category_layout'])) {
41.            foreach ($data['category_layout'] as $store_id => $layout) {
42.                if ($layout['layout_id']) {
43.                    $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'] . "'");
44.                }
45.            }
46.        }
47.                         
48.        if ($data['keyword']) {
49.            $this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = 'category_id=" . (int)$category_id . "', keyword = '" . $this->db->escape($data['keyword']) . "'");
50.        }
51.         
52.        $this->cache->delete('category');
53.    }



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



Tag : PHP

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-09-18 00:35:01 By : asustak View : 1220 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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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