อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

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

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

Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

อยากทราบวิธีแสดงข้อมูลให้ไม่ซ้ำกันครับตอนนี้ข้อมูลซ้ำกันตอนแสดง มันไปแสดงข้อมูลที่มีอยู่ทั้งหมดครับ คืออยาก วนลูปแล้วให้ภาพ 1 2 3 ไม่ซ้ำกันครับ
ในภาพทำเป็นสไลด์โชว์ครับ ปัญหาคือ อยากทราบวิธีการวนลูป ให้รูปแรกเป็นสินค้าที่1 รูปที่สองเป็นสินค้าที่2 รูปที่สามเป็นสินค้าที่3
Selection_999(261).png
Selection_999(261).png (25.66 KiB) Viewed 1046 times


โค้ดที่ใช้

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

<div class="slider demo">
  <div> 
<center> 
  <?php foreach ($productsnew as $product):?>
  <?php
  $i=1;
  while($i<=2)
  {
            echo '<img src="=img_products/'. $product['image'] .'" width=100px height=100px/>';
    ?>
  </div>

  <center><div> <?php echo '<img src="=img_products/'. $product['image'] .'" width=100px height=100px/>';?> </div></center>
  
  <center><div> <?php echo '<img src="=files/img_products/'. $product['image'] .'" width=100px height=100px/>';?></div>  </center>
  <?php
$i++;
}
?>
  <?php endforeach;?>
 
</div>
โค้ดที่ใช้ดึงข้อมูลครับ

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

class ModShowProductNewItem
    {
        public function newItem()
        {
           $db = Joomla\CMS\Factory::getDbo();
           $query = $db ->getQuery(true)
                        ->select('*')
                        ->from('products')
                        ->order('product_id DESC ');
                        $db->setQuery($query);

           $items = $db ->loadAssocList();
           return $items;
        }
    } 
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 22100
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

ตอนนี้เหมือนโค้ดที่เขียนมามันเป็นลูป 2 ชั้นซ้อนกันอยู่นะครับ และ จากโค้ดที่เขียนคือ ลูป 1 รอบ จะแสดงรูปเดิม 3 อัน

สรุป ในลูป 1 รอบ ควรจะเขียนให้แสดงรูปภาพแค่ภาพเดียวครับ และ ใช้ลูปชั้นเดียวก็พอครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

- ลูป1รอบ ต้องใช้
while($i<=2) จากเลข2 ให้เปลี่ยนเป็นเลข1 ใช่ไหมครับ

- แล้วลูป ชั้น เดียวก็คือ ให้ $i++; ไปใส่ไว้ใต้ <div> แรก ใช่ไหมครับ

- แล้ว <div> ที่เหลือต้องใส่ลูปแสดงแบบไหนครับ
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 22100
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

Patipat เขียน:- ลูป1รอบ ต้องใช้
while($i<=2) จากเลข2 ให้เปลี่ยนเป็นเลข1 ใช่ไหมครับ

- แล้วลูป ชั้น เดียวก็คือ ให้ $i++; ไปใส่ไว้ใต้ <div> แรก ใช่ไหมครับ

- แล้ว <div> ที่เหลือต้องใส่ลูปแสดงแบบไหนครับ
ไม่ใช่ครับ จุดประสงค์คือเราจะดึงรูปภาพสินค้ามาแสดง เพราะฉะนั้น loop ควรจะเป็นค่าของสินค้า ตามจำนวนสินค้าที่ดึงออกมาได้จริงๆ

เหมือนกับเวลาเราดึงข้อมูลสินค้ามาแสดงในตาราง หรือ แสดงเป็น list อะครับ ทำเหมือนกันเลย

เอางี้ครับ ตัด while($i<=2) ออกไปเลย เลิกใช้ไปเลย เอาแค่ foreach ค่าจากตัวแปรอย่างเดียว

ถ้าสามารถดึงชื่อสินค้ามาเรียงกันได้ ก็ต้องดึงรูปมาแสดงเรียงกันได้ มันหลักการเดียวกันครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

ครับผมแต่ว่ามันก็ยังขึ้นเป็นรูปเดียวอยู่ครับ ตอนนียังไม่แน่ใจว่า จะให้มันแสดง อีก <div> นึงได้อย่างไรโดยที่รูป เป็นคนล่ะรูปกันครับ
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 22100
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

Patipat เขียน:ครับผมแต่ว่ามันก็ยังขึ้นเป็นรูปเดียวอยู่ครับ ตอนนียังไม่แน่ใจว่า จะให้มันแสดง อีก <div> นึงได้อย่างไรโดยที่รูป เป็นคนล่ะรูปกันครับ
ลูปจากข้อมูลอะไรครับ แล้วข้อมูลนั้นมีจำนวนเท่าไหร่ ลองเช็คค่าดูก่อนครับ ว่าข้อมูลมีอะไรบ้าง
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
Patipat
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 996
ลงทะเบียนเมื่อ: 10/06/2019 10:12 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย Patipat »

ผมจะลูปจาก ข้อมูลรูปภาพครับ ชื่อ และ ราคาครับ ในตอนเรียกใช้ ผมกำหนดไว้ว่า ให้เรียง id ของ product ที่เพิ่มเข้ามาล่าสุด ครับแล้วก็กำหนดให้มีลิมิตแค่ 3 ครับ
Kor ma di kub. :)
ภาพประจำตัวสมาชิก
tsukasaz
PHP VIP Members
PHP VIP Members
โพสต์: 22100
ลงทะเบียนเมื่อ: 18/04/2012 9:39 am

Re: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

โพสต์ที่ยังไม่ได้อ่าน โดย tsukasaz »

แล้วข้อมูลจากฐานมีกี่รายการครับ ลอง print_r มาดู
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
ตอบกลับโพส

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

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 49