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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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

โดย Patipat » 09/07/2019 3:30 pm

ได้แล้วครับผมขอบคุณครับ กำหนด LIMIT ต่อจาก DESC เลยครับ

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

โดย Patipat » 09/07/2019 3:21 pm

ตอนนี้ เรียงสินค้าที่ขายได้ล่าสุด ได้แล้วครับแต่ว่าตอนแสดงผล อยากทำให้แสดงผลล่าสุดแค่ 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;
            }
    }

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

โดย tsukasaz » 09/07/2019 1:04 pm

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

ลองเขียนเป็นคำสั่ง sql ธรรมดาก่อน ใน phpmyadmin ให้มันรันได้ผลลัพที่ถูกต้องก่อนก็ได้ครับ ค่อยมาเขียนใน Joomla

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

โดย Patipat » 09/07/2019 12:10 pm

มันขึ้นแบบนี้ครับ มันบอกว่าไม่รู้จัก 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;
            }
    }

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

โดย tsukasaz » 09/07/2019 11:03 am

ในเว็บของ Joomla มีตัวอย่างโค้ดครับ https://docs.joomla.org/Selecting_data_ ... ple_Tables

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

โดย Patipat » 09/07/2019 10:55 am

ในโค้ดรูปแบบนี้ มีวิธีการเขียน 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;
            }
    }

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

โดย tsukasaz » 08/07/2019 7:58 pm

ลบเครื่องหมาย ; หลัง ->from('table) ออก

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

โดย Patipat » 08/07/2019 7:13 pm

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

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;
            }
    }

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

โดย tsukasaz » 08/07/2019 7:11 pm

เช็คโค้ดดูครับ คำว่า -> ต้องไม่มีเว้นวรรคทั้งหน้าและหลัง แปะโค้ดมาดูก็ได้ครับ

ข้างบน