ตารางที่กำหนดเองโดยใช้แบบสอบถาม SQL และ php

ฉันกำลังพยายามสร้างตารางจากการสืบค้น sql แต่ฉันต้องการผลลัพธ์เพียง 3 รายการต่อแถวของตาราง

ฉันมีรายชื่อประมาณ 47 ชื่อดังนั้นฉันจึงไม่มีปัญหาในการพิมพ์พวกเขาในบรรทัดใหม่ แต่ฉันจะสร้างตารางได้อย่างไรโดยที่ while loop จะพิมพ์แถวของตาราง จากนั้นพิมพ์เซลล์ข้อมูลตาราง 3 เซลล์ด้วยแบบสอบถาม จากนั้นสร้างใหม่ แถวสำหรับ 3 ค่าถัดไป?

ตัวอย่าง:

ผลลัพธ์_1 | ผลลัพธ์_2 | result_3
result_4 | ผลลัพธ์_5 | result_6
result_7 | result_8 | ผลลัพธ์_9

ปัจจุบันขณะวนซ้ำ:

while($row = mysql_fetch_assoc($result)) {

      echo "<tr>";  
      echo "<td><input type='checkbox'> ".$row['name']."</td>";
      echo "<td><input type='checkbox'> ".$row['name']."</td>";
      echo "<td><input type='checkbox'> ".$row['name']."</td>";
      echo "</tr>";


        }

โครงสร้างฐานข้อมูล:

รหัส | ชื่อ
1 | result_1
2 | result_2
3 | result_3
4 | ผลลัพธ์_4

ขอบคุณล่วงหน้า!


person 626    schedule 25.03.2014    source แหล่งที่มา
comment
คุณเคยพิจารณาใช้ลูปแบบซ้อนสำหรับ/ในขณะเดียวกันในขณะที่คุณวนซ้ำผลลัพธ์การสืบค้นเพื่อแสดงตารางของคุณหรือไม่? มันจะมีประโยชน์หากคุณสามารถโพสต์โครงสร้างโค้ด/ฐานข้อมูลเพิ่มเติมและสิ่งอื่น ๆ ที่คุณได้ลองไปแล้ว   -  person Maximus2012    schedule 26.03.2014
comment
ฉันอัพเดตโพสต์ด้วยโค้ด while loop และโครงสร้างฐานข้อมูล ขอบคุณ   -  person 626    schedule 26.03.2014


คำตอบ (2)


คุณสามารถใช้ตัวดำเนินการโมดูลัส (%) เพื่อตรวจสอบว่าคุณพร้อมสำหรับการขึ้นบรรทัดใหม่หรือไม่

    $number_of_names = count($names);
    $number_of_columns = 3; //you can change this at any point

    echo "<table><tr>";

    for($i=0;$ i<$number_of_names; $i++){
        echo "<td>" . $names[$i] . "</td>";

        if ($i % $number_of_columns == ($number_of_columns - 1) && $i<$number_of_names-1){
            echo "</tr><tr>";
        }
     }

     echo "</tr></table>";
person WinterMute    schedule 25.03.2014
comment
ขอบคุณ นี่มันสมบูรณ์แบบ! - person 626; 26.03.2014

ลองวนซ้ำผลลัพธ์โดยใช้ for loop จากนั้นเปรียบเทียบส่วนที่เหลือของการหารตัววนซ้ำด้วย 3 โดยใช้ตัวดำเนินการโมดูลัส

echo "<tr>";
for($i = 0; $i<mysql_num_rows($result); $i++) {
  if($i%3==0) {
    echo "</tr><tr>";
  }
  $row = mysql_fetch_assoc($result)
  echo "<td><input type='checkbox'> ".$row['name']."</td>";
}
echo "</tr>";
person Dragos Giurca    schedule 25.03.2014