หน้า 1 จากทั้งหมด 1

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

โพสต์แล้ว: 11/07/2019 11:35 am
โดย Patipat
อยากทราบวิธีแสดงข้อมูลให้ไม่ซ้ำกันครับตอนนี้ข้อมูลซ้ำกันตอนแสดง มันไปแสดงข้อมูลที่มีอยู่ทั้งหมดครับ คืออยาก วนลูปแล้วให้ภาพ 1 2 3 ไม่ซ้ำกันครับ
ในภาพทำเป็นสไลด์โชว์ครับ ปัญหาคือ อยากทราบวิธีการวนลูป ให้รูปแรกเป็นสินค้าที่1 รูปที่สองเป็นสินค้าที่2 รูปที่สามเป็นสินค้าที่3
Selection_999(261).png
Selection_999(261).png (25.66 KiB) Viewed 1042 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;
        }
    } 

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

โพสต์แล้ว: 11/07/2019 11:44 am
โดย tsukasaz
ตอนนี้เหมือนโค้ดที่เขียนมามันเป็นลูป 2 ชั้นซ้อนกันอยู่นะครับ และ จากโค้ดที่เขียนคือ ลูป 1 รอบ จะแสดงรูปเดิม 3 อัน

สรุป ในลูป 1 รอบ ควรจะเขียนให้แสดงรูปภาพแค่ภาพเดียวครับ และ ใช้ลูปชั้นเดียวก็พอครับ

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

โพสต์แล้ว: 11/07/2019 11:53 am
โดย Patipat
- ลูป1รอบ ต้องใช้
while($i<=2) จากเลข2 ให้เปลี่ยนเป็นเลข1 ใช่ไหมครับ

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

- แล้ว <div> ที่เหลือต้องใส่ลูปแสดงแบบไหนครับ

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

โพสต์แล้ว: 11/07/2019 12:00 pm
โดย tsukasaz
Patipat เขียน:- ลูป1รอบ ต้องใช้
while($i<=2) จากเลข2 ให้เปลี่ยนเป็นเลข1 ใช่ไหมครับ

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

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

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

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

ถ้าสามารถดึงชื่อสินค้ามาเรียงกันได้ ก็ต้องดึงรูปมาแสดงเรียงกันได้ มันหลักการเดียวกันครับ

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

โพสต์แล้ว: 11/07/2019 6:48 pm
โดย Patipat
ครับผมแต่ว่ามันก็ยังขึ้นเป็นรูปเดียวอยู่ครับ ตอนนียังไม่แน่ใจว่า จะให้มันแสดง อีก <div> นึงได้อย่างไรโดยที่รูป เป็นคนล่ะรูปกันครับ

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

โพสต์แล้ว: 11/07/2019 6:59 pm
โดย tsukasaz
Patipat เขียน:ครับผมแต่ว่ามันก็ยังขึ้นเป็นรูปเดียวอยู่ครับ ตอนนียังไม่แน่ใจว่า จะให้มันแสดง อีก <div> นึงได้อย่างไรโดยที่รูป เป็นคนล่ะรูปกันครับ
ลูปจากข้อมูลอะไรครับ แล้วข้อมูลนั้นมีจำนวนเท่าไหร่ ลองเช็คค่าดูก่อนครับ ว่าข้อมูลมีอะไรบ้าง

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

โพสต์แล้ว: 11/07/2019 7:03 pm
โดย Patipat
ผมจะลูปจาก ข้อมูลรูปภาพครับ ชื่อ และ ราคาครับ ในตอนเรียกใช้ ผมกำหนดไว้ว่า ให้เรียง id ของ product ที่เพิ่มเข้ามาล่าสุด ครับแล้วก็กำหนดให้มีลิมิตแค่ 3 ครับ

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

โพสต์แล้ว: 11/07/2019 7:27 pm
โดย tsukasaz
แล้วข้อมูลจากฐานมีกี่รายการครับ ลอง print_r มาดู