在for循环中打印表中的2列

时间:2014-01-22 17:57:36

标签: php

我正在尝试在一个表中的mysql查询中打印结果,该表将在2列中。要通过我的for循环执行此操作,我执行了以下操作:

    $num = 1;
            while($r = $qry->fetch())
            {
                    if (!fmod($num,2)) echo '<tr>';
                    echo "<td>" . $num . "</td>";
                    if (!fmod($num,2)) echo '</tr>';
                    $num++;
           }

但是,每一行都在表中获得自己的行。即使$ num打印并显示1,2,3,4等等。我错过了什么?

3 个答案:

答案 0 :(得分:1)

你得到的几乎是正确的,但每次迭代都需要显示<tr></tr>所以:

https://eval.in/93455

$num = 1;
        while($num < 11)
        {
                if (fmod($num,2)) echo '<tr>';
                echo "<td>" . $num . "</td>";
                if (!fmod($num,2)) echo '</tr>';
                $num++;
       }

注意我为测试目的改变了你的while条件

答案 1 :(得分:0)

我建议您这样做。它创建一个表,并列出每行的column1和column2。

    $result
        ?>
         <table>
          <tr>
           <th> Data for column 1</th>
          </tr>
         <tr>
        <?
        while($row = mysqli_fetch_assoc($result))
        {

          echo "<td>".$row['dataforcolumn1']."</td>";
        }
    ?>
</tr>
    </table>

答案 2 :(得分:0)

我会这样做简化它:

$num = 1;
            while($r = $qry->fetch_array())
            {
                    if(fmod($num,2)) echo "</tr>\n";
                    echo "<td>" . $r['columnName'] . "</td>\n";
                    if(!fmod($num,2)) echo '</tr>';
                    $num++;
           }

主要是,这是将 fmod 命令更改为2以结束标记,因为您希望它添加后添加两个标记(意味着它应该可以被2整除)。