Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

ถามตอบ ปัญหาการพัฒนา Extension ไม่ว่าจะเป็น Module plugin Component หรือ แม้แต่ template การปรับแต่งโค้ด Joomla ต่างๆ ทุกเวอร์ชั่น 1.5 2.5 หรือ 3.x

Moderator: mindphp, ผู้ดูแลกระดาน

Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

โค้ด: เลือกทั้งหมด

class ShowOrderItems{
            public function showItem()
            {
                $db = Joomla\CMS\Factory::getDbo();
                $query = $db ->getQuery(true)
                        ->select('*')
                        ->from('table);
                        ->order('orderid DESC');
                        $db->setQuery($query);

                    $orderitem = $db ->loadAssocList();
                    return $orderitem;
            }
    }
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ลบเครื่องหมาย ; หลัง ->from('table) ออก
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

ในโค้ดรูปแบบนี้ มีวิธีการเขียน Join table อย่างไรครับ เช่น ตาราง orders กับ ตาราง product

โค้ด: เลือกทั้งหมด

class ShowOrderItems{
            public function showItem()
            {
                $db = Joomla\CMS\Factory::getDbo();
                $query = $db ->getQuery(true)
                        ->select('*')
                        ->from('table)
                        ->order('orderid DESC');
                        $db->setQuery($query);

                    $orderitem = $db ->loadAssocList();
                    return $orderitem;
            }
    }
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ในเว็บของ Joomla มีตัวอย่างโค้ดครับ https://docs.joomla.org/Selecting_data_ ... ple_Tables
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

มันขึ้นแบบนี้ครับ มันบอกว่าไม่รู้จัก field นี้ รูปแบบการ join ถูกหรือเปล่าครับ แต่ #__mzc_products.image ก็มี field ของ image นะครับ
Selection_999(227).png
Selection_999(227).png (52.2 KiB) Viewed 463 times

โค้ดของ การ JOIN 2 ตาราง

โค้ด: เลือกทั้งหมด

class ShowOrderItems{
            public function showItem()
            {
                $db = Joomla\CMS\Factory::getDbo();
                $query = $db ->getQuery(true)
                
                ->select('#__mzc_products.image, #__mzc_products.name_en_GB, #__mzc_products.product_price')
                ->from ($db->quoteName ('#__mzc_products','product'))
                ->join('LEFT', $db->quoteName('#__mzc_order_item', 'order_item') . ' ON (' . $db->quoteName('order_item.product_id') . ' = ' . $db->quoteName('product.product_id') . ')')
                ->where($db->quoteName('order_item.order_item_id')."=".$db->quote('product.product_id'))
                ->order('order_item_id DESC');
                $db->setQuery($query);

                    $orderitem = $db ->loadAssocList();
                    return $orderitem;
            }
    }
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ตรงส่วน select ตาราง #__mzc_products เราตั้งเป็น product เฉยๆ แล้วนะครับ จากโค้ด ลองเปลี่ยนเป็น product เฉยๆ แทน

ลองเขียนเป็นคำสั่ง sql ธรรมดาก่อน ใน phpmyadmin ให้มันรันได้ผลลัพที่ถูกต้องก่อนก็ได้ครับ ค่อยมาเขียนใน Joomla
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

ตอนนี้ เรียงสินค้าที่ขายได้ล่าสุด ได้แล้วครับแต่ว่าตอนแสดงผล อยากทำให้แสดงผลล่าสุดแค่ 3 อย่างครับแต่ในภาพ มันแสดงทั้งหมดที่ขายได้ล่าสุดครับ
Selection_999(239).png
Selection_999(239).png (99.62 KiB) Viewed 370 times
ตัวอย่างโค๊ดครับ อยากทราบว่าใส่ LIMIT ได้มั้ยคับ

โค้ด: เลือกทั้งหมด

class ShowOrderItems{
            public function showItem()
            {
                $db = Joomla\CMS\Factory::getDbo();
                $query = $db->getQuery(true)
                
                ->select('a, b)
                ->from('item AS b')
                ->leftJoin('products AS a ON a.product_id = b.product_id')
                ->order('b.order_item_id DESC');
                $db->setQuery($query);
                $orderitem = $db ->loadAssocList();
                return $orderitem;
            }
    }
แก้ไขล่าสุดโดย Patipat เมื่อ 09/07/2019 3:26 pm, แก้ไขไปแล้ว 1 ครั้ง.
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 21991
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

กำหนด limit ครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: Q - มีวิธีการสร้างตัวแสดงสินค้า ให้แสดงสินค้าขายล่าสุดไหมครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

ได้แล้วครับผมขอบคุณครับ กำหนด LIMIT ต่อจาก DESC เลยครับ
Kor ma di kub. :)
ตอบกลับโพส

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 101