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

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

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

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

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

Postby Patipat » 23/07/2019 4:01 pm

โค้ดที่จะนำค่า ไปแสดงข้อมูลครับ แต่ว่า ตรง ->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;
        
If you fall, let you stand. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10272
Joined: 18/04/2012 9:39 am

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

Postby tsukasaz » 23/07/2019 4:09 pm

ใช้คำสั่ง 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)

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

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

Postby Patipat » 23/07/2019 4:23 pm

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

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 122 times
If you fall, let you stand. :)

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 18576
Joined: 31/03/2014 10:02 am
Contact:

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

Postby thatsawan » 23/07/2019 4:41 pm

จะแก้ไขปัญหาได้ ต้องรู้ว่า 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: 10272
Joined: 18/04/2012 9:39 am

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

Postby tsukasaz » 23/07/2019 4:43 pm

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

แล้วคำถามที่ว่าจะใส่ค่า ที่แปลงมาจาก array คือจะเอาค่าไปใส่ตรงไหนของ Code หรอครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)

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

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

Postby Patipat » 23/07/2019 4:49 pm

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 113 times
If you fall, let you stand. :)

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

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

Postby Patipat » 23/07/2019 4:51 pm

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

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


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

Code: Select all

->where('a.product_id in ('.$product_slisdershow.')'
If you fall, let you stand. :)

User avatar
tsukasaz
PHP VIP Members
PHP VIP Members
Posts: 10272
Joined: 18/04/2012 9:39 am

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

Postby tsukasaz » 23/07/2019 5:07 pm

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)


Return to “Joomla Development”

Who is online

Users browsing this forum: No registered users and 8 guests