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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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

โดย tsukasaz » 11/07/2019 7:27 pm

แล้วข้อมูลจากฐานมีกี่รายการครับ ลอง print_r มาดู

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

โดย Patipat » 11/07/2019 7:03 pm

ผมจะลูปจาก ข้อมูลรูปภาพครับ ชื่อ และ ราคาครับ ในตอนเรียกใช้ ผมกำหนดไว้ว่า ให้เรียง id ของ product ที่เพิ่มเข้ามาล่าสุด ครับแล้วก็กำหนดให้มีลิมิตแค่ 3 ครับ

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

โดย tsukasaz » 11/07/2019 6:59 pm

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

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

โดย Patipat » 11/07/2019 6:48 pm

ครับผมแต่ว่ามันก็ยังขึ้นเป็นรูปเดียวอยู่ครับ ตอนนียังไม่แน่ใจว่า จะให้มันแสดง อีก <div> นึงได้อย่างไรโดยที่รูป เป็นคนล่ะรูปกันครับ

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

โดย tsukasaz » 11/07/2019 12:00 pm

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

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

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

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

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

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

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

โดย Patipat » 11/07/2019 11:53 am

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

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

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

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

โดย tsukasaz » 11/07/2019 11:44 am

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

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

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

โดย Patipat » 11/07/2019 11:35 am

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

ข้างบน