Tabel Kustom menggunakan query SQL dan php

Saya mencoba membuat tabel dari kueri sql tetapi saya hanya perlu mendapatkan 3 hasil per baris tabel.

Saya memiliki daftar sekitar 47 nama jadi saya tidak punya masalah mencetaknya di baris baru tetapi bagaimana cara membuat tabel di mana loop while akan mencetak baris tabel kemudian mencetak 3 sel data tabel dengan kueri lalu membuat yang baru baris untuk 3 nilai berikutnya?

Contoh:

hasil_1 | hasil_2 | hasil_3
hasil_4 | hasil_5 | hasil_6
hasil_7 | hasil_8 | hasil_9

Loop Sementara Saat Ini:

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


        }

Struktur Basis Data:

identitas | nama
1 | hasil_1
2 | hasil_2
3 | hasil_3
4 | hasil_4

Terima kasih sebelumnya!


person 626    schedule 25.03.2014    source sumber
comment
sudahkah Anda mempertimbangkan untuk menggunakan loop for/sementara bersarang saat Anda mengulangi hasil kueri untuk menampilkan tabel Anda? Akan sangat membantu jika Anda dapat memposting lebih banyak kode/struktur db dan hal-hal lain yang telah Anda coba sejauh ini.   -  person Maximus2012    schedule 26.03.2014
comment
Saya memperbarui posting dengan kode loop sementara dan struktur database. Terima kasih   -  person 626    schedule 26.03.2014


Jawaban (2)


Anda dapat menggunakan operator modulus (%) untuk memeriksa apakah Anda siap untuk saluran baru.

    $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
Terima kasih, ini sempurna! - person 626; 26.03.2014

Coba perulangan hasilnya menggunakan perulangan for, lalu bandingkan sisa pembagian iterator dengan 3, menggunakan operator modulus.

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