2017-02-04 1 views
1

あなたはここにいます。私は解決策が必要で、私はこれらのことでちょっと初心者です。 は今のところ私はこのPHPスタイリング中に

1.text 2.text 3.text 4.text 

ように見えるページを持っているが、私はそれがこの

1.text 2.text 
3.text 4.text 

コードのようにする必要があります私は

<table > 
     <?php 
     for ($x = 1; $x <= 2; $x++): ?> 
     <tr> 
     <?php while($row = $choices->fetch_assoc()): ?> 
      <td><button class="pogaAtbilzuVarianti" value="<?php echo $row['id_var']; ?>" id="atbilde_a"><?php echo $row['teksts']; ?></button></td> 
     <?php endwhile; ?> 
     </tr> 
     <?php endfor; ?> 
     </table> 
+0

チェックした場合、 '$ i'を2つに割り切れます。そうであれば、行を終了して新しい行を開始します。 – miken32

+0

あなたはあなたのループを内側に持っているので...外側のループ(WHILE Loop)でデータベースの結果をループし、内部のカウントチェックを実行して2つのエントリごとに新しい行を生成したいとします。 – TimBrownlaw

+1

ヒントとヒントをありがとう)@TimBrownlaw –

答えて

1

for()ループがあるため、この中に無用である持っていますループ内のwhile()ループは、クエリによって返されたすべての行を処理します。

whileループを使用し、カウンタを使用して新しい<tr>を開始するかどうかを判断する必要があります。

<table> 
<?php 
$counter = 0; 
while ($row = $choices->fetch_assoc()) { 
    if ($counter % 2 == 0) { // Start a new row before event elements 
     echo "<tr>"; 
    } 
    ?> 
    <td><button class="pogaAtbilzuVarianti" value="<?php echo $row['id_var']; ?>" id="atbilde_a"><?php echo $row['teksts']; ?></button></td> 
    <?php 
    if ($counter % 2 == 1) { // End row after odd elements 
     echo "</tr>"; 
    } 
    $counter++; 
} 
if ($counter % 2 == 1) { // End last row if it only had 1 column 
    echo "</tr>"; 
} 
?> 
</table> 
+0

ありがとうございます! –

0
<table > 
    <?php while($row = $choices->fetch_assoc()): 
    if(($row['id_var'] % 2) == 1) echo '<tr>'; 
    ?> 
     <td><button class="pogaAtbilzuVarianti" value="<?php echo $row['id_var']; ?>" id="atbilde_a"><?php echo $row['teksts']; ?></button></td> 
    <?php 
    if(($row['id_var'] % 2) == 0) echo '</tr>'; 
    endwhile; ?> 
</table> 
関連する問題