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

ถามตอบ ปัญหาการพัฒนา 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

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

Postby 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 230 times


โค้ดที่ใช้

Code: Select all

<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>


โค้ดที่ใช้ดึงข้อมูลครับ

Code: Select all

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

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

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

Postby tsukasaz » 11/07/2019 11:44 am

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

สรุป ในลูป 1 รอบ ควรจะเขียนให้แสดงรูปภาพแค่ภาพเดียวครับ และ ใช้ลูปชั้นเดียวก็พอครับ
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: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

Postby Patipat » 11/07/2019 11:53 am

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

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

- แล้ว <div> ที่เหลือต้องใส่ลูปแสดงแบบไหนครับ
If you fall, let you stand. :)

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

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

Postby tsukasaz » 11/07/2019 12:00 pm

Patipat wrote:- ลูป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)

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

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

Postby Patipat » 11/07/2019 6:48 pm

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

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

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

Postby tsukasaz » 11/07/2019 6:59 pm

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


ลูปจากข้อมูลอะไรครับ แล้วข้อมูลนั้นมีจำนวนเท่าไหร่ ลองเช็คค่าดูก่อนครับ ว่าข้อมูลมีอะไรบ้าง
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: อยากทราบวิธีการ วนลูปให้ภาพไม่ซ้ำกันหน่อยครับ

Postby Patipat » 11/07/2019 7:03 pm

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

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

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

Postby tsukasaz » 11/07/2019 7:27 pm

แล้วข้อมูลจากฐานมีกี่รายการครับ ลอง print_r มาดู
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 6 guests