เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

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

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

Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by Patipat »

โค้ดที่จะนำค่า ไปแสดงข้อมูลครับ แต่ว่า ตรง ->where('a.product_id in ('.$product_slisdershow.')') ข้อมูล ต้องเป็น เช่น 1,2,3,4 ถึงจะแสดงข้อมูลได้
แต่ว่า ผม แปลงค่าจาก Arary มาแล้ว มันนำไปใส่ไม่ได้ครับ ต้องใส่ตรงไหนถึงจะถูกหลักครับ โค้ดที่แปลงมาคือเป็นตัวแปร $setid ครับ
พอเช็คค่า $setid ดูก็จะได้ 1,2,3,4 ครับแต่ว่า นำไปใส่ใน Where ไมไ่ด้ครับ

โค้ดที่ดึงค่าจาก Fields ครับ

Code: Select all

$helper_newproduct = new ModShowProductNewItem();
$product_slisdershow = $helper_newproduct->newItem($params->get('selectid')); 


โค้ดของคลาสแสดงข้อมูลครับ

Code: Select all

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 ('.$product_slisdershow.')')
                        ->leftJoin('#__mzc_products_to_categories AS a ON b.product_id = a.product_id')   
                        ->order('product_id DESC');
                        $db->setQuery($query,0,$product_slisdershow);
                        
                        
                        //ตัวที่แปลงมาจาก Array 
                        $setid = implode(",", $product_slisdershow);
                        echo $setid;
                        exit();
                     
            
           $items = $db ->loadAssocList();
           return $items;
        } 
Kor ma di kub. :)
User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12315
Joined: 18/04/2012 9:39 am

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by tsukasaz »

ใช้คำสั่ง implode ไงครับ https://www.mindphp.com/%E0%B8%84%E0%B8 ... plode.html

Code: Select all

implode(',', $product_slisdershow) 
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by Patipat »

พอมผม ใส่ ให้เท่ากับตัวแปรนี้ มัน ขึ้นเออเร่อครับ เช็คค่าไม่ได้

Code: Select all

$product_slisdershow = $helper_newproduct->newItem($params->get('selectid')); 
$setid = implode(",", $product_slisdershow);
print_r($setid);
exit();

 
Selection_999(376).png
Selection_999(376).png (8.79 KiB) Viewed 285 times
Kor ma di kub. :)
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 26613
Joined: 31/03/2014 10:02 am
Contact:

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by thatsawan »

จะแก้ไขปัญหาได้ ต้องรู้ว่า error ที่ไหน เช็คเเต่ละบรรทัดก่อนว่าเป็นที่ไหน

Code: Select all

$product_slisdershow = $params->get('selectid'); 
$setid = implode(",", $product_slisdershow);
print_r($setid);
exit();
User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12315
Joined: 18/04/2012 9:39 am

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by tsukasaz »

มัน Error ก่อนที่จะ print ค่าแล้วครับ

แล้วคำถามที่ว่าจะใส่ค่า ที่แปลงมาจาก array คือจะเอาค่าไปใส่ตรงไหนของ Code หรอครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by Patipat »

thatsawan wrote:จะแก้ไขปัญหาได้ ต้องรู้ว่า error ที่ไหน เช็คเเต่ละบรรทัดก่อนว่าเป็นที่ไหน

Code: Select all

$product_slisdershow = $params->get('selectid'); 
$setid = implode(",", $product_slisdershow);
print_r($setid);
exit();

ครับผมตอนนี้ get ค่าออกมาได้แล้วครับ
แต่ว่า ยังเออเร่อตอน select ข้อมูลครับ
Selection_999(377).png
Selection_999(377).png (50.76 KiB) Viewed 276 times
Kor ma di kub. :)
Patipat
PHP Super Hero Member
PHP Super Hero Member
Posts: 996
Joined: 10/06/2019 10:12 am

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by Patipat »

tsukasaz wrote:มัน Error ก่อนที่จะ print ค่าแล้วครับ

แล้วคำถามที่ว่าจะใส่ค่า ที่แปลงมาจาก array คือจะเอาค่าไปใส่ตรงไหนของ Code หรอครับ
ผมจะนำไปใส่ไว้ตรงนี้ครับ เปลี่ยนจาก $product_slisdershow เป็นตัวแปรที่แปลงมาครับ

Code: Select all

->where('a.product_id in ('.$product_slisdershow.')') 
Kor ma di kub. :)
User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 12315
Joined: 18/04/2012 9:39 am

Re: เรามีวิธีการ ใส่ค่า ที่เราแปลงมาจาก Array อย่างไรครับ

Post by tsukasaz »

tsukasaz wrote:ใช้คำสั่ง implode ไงครับ https://www.mindphp.com/%E0%B8%84%E0%B8 ... plode.html

Code: Select all

implode(',', $product_slisdershow)
ก็ Copy Code แล้วเอาวางแทนที่ตัวแปรสิครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Joomla Development”

Who is online

Users browsing this forum: No registered users and 3 guests