Select ข้อมูล Error ครับ

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

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

ภาพประจำตัวสมาชิก
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 761
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Select ข้อมูล Error ครับ

โพสต์โดย Patipat » 23/07/2019 5:12 pm

ผมได้ทำ แสดงสินค้า โดยใช้ Combobox และใช้ Tag เก็บข้อมูล ID ครับ แต่ตอนนี้เก็บ ID ของสินค้าได้แล้ว พอผม Select ข้อมูลมา มันขึ้น Warning แล้วก็ข้อความยาว ๆตามภาพเลยครับ
Selection_999(377).png
Selection_999(377).png (50.76 KiB) เปิดดู 72 ครั้ง



ส่วนตรงนี้โค้ดที่ แปลงจาก Combobox ให้เป็นเลขโดยมี , ขั้นครับ พอกด print_r ออกมาดูก็ได้ค่า 1,2,3,4 นะครับ พอนำไปใช้ มันเออเร่อคับ

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

$helper_newproduct = new ModShowProductNewItem();
$product_slisdershow = $params->get('selectids'); //ดึงข้อมูลจาก field 
$setid = implode("," , $product_slisdershow); //แปลงจากอาเรย์ให้เป็นเลขแบบมีลูกน้ำขั้น เช่น 1,2,3,4


ส่วนตรงนี้โค้ด Select ข้อมูลสินค้าครับ

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

class ModShowProductNewItem
   
{
        public function newItem($product_slisdershow)
        {
         $lang_tag = \Joomla\CMS\Factory::getLanguage()->getTag(); 
           $db 
= Joomla\CMS\Factory::getDbo();
           $query = $db ->getQuery(true)
                        ->select('a.category_id, b.product_id, b.image ,b.product_price,'.$db->qn('b.name_'.$lang_tag))
                        ->from('#__mzc_products as b')
                        ->where('a.product_id in ('.$setid.')') //ตัวแปรนี้ ที่แปลงค่ามาจาก Array ครับ 
                        ->leftJoin('#__mzc_products_to_categories AS a ON b.product_id = a.product_id')   
                        
->order('product_id DESC');
                        $db->setQuery($query,0,$product_slisdershow);
           $items = $db ->loadAssocList();
           return $items;
        }
      
   
    


โค้ดตรงนี้ แสดงสินค้าครับ

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

 
<center> 
 <?php foreach ( $product_slisdershow as $product): ?>
    <div>
        <a href="<?php echo SEFLink('index.php?option=com_mooziicart&controller=product&task=view&category_id=' . $product['category_id'] . '&product_id=' . $product['product_id'], 1); ?>" > 
            <center> 
<img src="<?php echo JUri::root() . 'components/com_mooziicart/files/img_products/' . $product['image'];>" width="100px" heigh="100px" title="
<?php echo $product['name_'.$lang_tag] ?>" alt="<?php echo $product['name_'.$lang_tag] ?>"></a>
<center>
                <br>
            <center> <?php echo ($product['name_'.$lang_tag])  ?><br></center>
          <?php echo ($product['product_price'])  ?>  <br><br>
    </div>      
</center>    
 <?php endforeach; ?>
If you fall, let you stand. :)

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 17634
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: Select ข้อมูล Error ครับ

โพสต์โดย thatsawan » 23/07/2019 5:18 pm

ขอข้อความ error ชัดๆหน่อย

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 17634
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: Select ข้อมูล Error ครับ

โพสต์โดย thatsawan » 23/07/2019 5:20 pm

warning illegal string offset มันไม่ใช่ error นะ มันเเค่ warning เฉยๆ ค่าตัวแปลที่เรียกอาจจะไม่มีมา

ภาพประจำตัวสมาชิก
thatsawan
PHP VIP Members
PHP VIP Members
โพสต์: 17634
ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
ติดต่อ:

Re: Select ข้อมูล Error ครับ

โพสต์โดย thatsawan » 23/07/2019 5:36 pm

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

$helper_newproduct = new ModShowProductNewItem();
$product_slisdershow = $params->get('selectids'); //ดึงข้อมูลจาก field
$setid = implode("," , $product_slisdershow); //แปลงจากอาเรย์ให้เป็นเลขแบบมีลูกน้ำขั้น เช่น 1,2,3,4

จากตรงนี้ พอได้ $setid ยังไม่ได้ส่งค่าไปใช้

ภาพประจำตัวสมาชิก
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 761
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: Select ข้อมูล Error ครับ

โพสต์โดย Patipat » 23/07/2019 5:38 pm

ได้แล้วครับผม ขอบคุณคร้าบ

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

$helper_newproduct = new ModShowProductNewItem(); // ประกาศฟังก์ชัน
$product_slisdershow = $params->get('selectids');
$setid = $helper_newproduct->newItem(implode(",",$product_slisdershow)); //แปลงค่าเสร็จส่งค่าคืนให้ฟังก์ชัน $helper ครับ  
If you fall, let you stand. :)


ย้อนกลับไปยัง

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

กำลังดูบอร์ดนี้: 8 และ บุคคลทั่วไป 0 ท่าน