我正在尝试在一个表中的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等等。我错过了什么?
答案 0 :(得分:1)
你得到的几乎是正确的,但每次迭代都需要显示<tr>
或</tr>
所以:
$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整除)。