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

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

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

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

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

Post by 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 307 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;
        }
    } 
Kor ma di kub. :)

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

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

Post by 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)

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

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

Post by Patipat » 11/07/2019 11:53 am

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

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

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

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

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

Post by 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)

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

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

Post by Patipat » 11/07/2019 6:48 pm

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

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

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

Post by 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)

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

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

Post by Patipat » 11/07/2019 7:03 pm

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

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

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

Post by tsukasaz » 11/07/2019 7:27 pm

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

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Joomla Development”

Who is online

Users browsing this forum: No registered users and 4 guests