0

データベースのレコードから結果を与えるクエリがあるとしましょう。私はそれらのレコードをテーブルに置きたいのですが、行ごとに好きではありません。5セルごとに行を変更するテーブルを作成したいと思います。whileまたはを使用してこれを行うにはどうすればよいforですか?

これは私が今のところ作成したもののほんの一例ですが、5番目のセルごとに行を変更することはできません...

<table>
<tr>
<?php $count = 0; while ($count <= 5){ ?>
<td><?php echo $id[$count]->id; $usrname[$count]->usrname;</td>
<?php $count++;}?>
</tr>
</table>

何か案が???

4

3 に答える 3

3

モジュロ演算を使用します:

if($count % 5 == 4) {
  // end the current row, and start a new one
  echo "</tr><tr>";

5で割り$count、余りを取ります。したがって、5ステップごとに1回は4($count4、9、14など)であり、5番目のレコードごとに異なるものを生成できます。


これをコード例に適用すると、次のようになります。

<table>
<tr>
<?php
$count = 0;
while ($count <= 5) {
  if($count % 5 == 4) {
    // Generate a new row
    echo "<\tr><tr>";
  }
  ?><td><?php echo $id[$count]->id." ".$usrname[$count]->usrname;?></td><?php
  $count++;
}
?>
</tr>
</table>
于 2013-02-20T10:24:56.117 に答える
1

whileまたはforの前にarray_chunk()を使用するか、ループに設定します。

if($count % 5 == 0) {
   echo "</tr><tr>";
   $count = 0;
}
于 2013-02-20T10:27:04.910 に答える
1

このようなものが機能する可能性があります。for内側のループと組み合わせることもできます。ただし、動作するコードは、Array内部でループしているコードに大きく依存します。したがって、セットアップに合わせて次のコードをカスタマイズする必要がある場合があります。

While'実際の配列を提供しなかったため、ループを削除することに注意してください。<tr>基本的に前に置くことができます。

<table>

    // you may start your while loop here
    <tr>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
        <td><?php echo $id[$count]->id; $usrname[$count]->usrname; $count++; ?></td>
    </tr>

</table>
于 2013-02-20T10:30:55.577 に答える