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] เปิด
[flash] ปิด
[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) เปิดดู 63 ครั้ง


ตัวอย่างโค๊ดครับ อยากทราบว่าใส่ 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) เปิดดู 72 ครั้ง


โค้ดของ การ 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) ออก

ข้างบน