我有一个mySQL数据库,我正在使用PHP来抓取它并将其显示在HTML表格中。它的设置如下:
<table>
<tr>
<td>Title 1</td>
<td>Title 2</td>
</tr>
<?php
$i=0;
while ($i < $num) {
$col1=mysql_result($result,$i,"col1");
$col2=mysql_result($result,$i,"col2");
?>
<tr>
<td><?php echo $col1; ?></td>
<td><?php echo $col2; ?></td>
</tr>
</table>
<?php
$i++;
echo '<br />';
}
?>
问题:对于它提取的第一组数据,列与标题对齐。但是对于之后的每个重复行,列被一个空格分隔,并且不与它们的标题对齐。它看起来像这样:
Title 1 Title 2
col1 col2
col1 col2
col1 col2
如果措辞令人困惑,很抱歉。
答案 0 :(得分:2)
您正在关闭循环内的表格,尝试将</table>
拉出循环。
答案 1 :(得分:0)
您正在关闭循环内的表。完成后你需要关闭它。
<table>
<tr>
<td>Title 1</td>
<td>Title 2</td>
</tr>
<?php
$i=0;
while ($i < $num)
{
$col1=mysql_result($result,$i,"col1");
$col2=mysql_result($result,$i,"col2");
?>
<tr>
<td><?php echo $col1; ?></td>
<td><?php echo $col2; ?></td>
</tr>
<?php
$i++;
echo '<br />';
}
?>
</table>
为了更加清晰,第一行按预期工作,因为您尚未关闭表格。
鉴于其他表格信息已发布而没有开头<table>
标记,您会认为它根本不会显示 - 但大多数这些天浏览器会尝试动态更正HTML,所以某些事情(比如打开时丢失的表格标签)就会显示出来,好像前面有一个就好了。
答案 2 :(得分:0)
将</table>
移到最后一块PHP之后。当您只想循环并创建新行时,您将反复关闭表。保存表的关闭,直到完成while循环。
答案 3 :(得分:0)
正如其他人所说。你的桌子正在关闭你的循环。我将所有PHP代码放在一起,以避免与循环混淆。
<table>
<tr>
<td>Title 1</td>
<td>Title 2</td>
</tr>
<?php
$num = $mysql_result->num_rows;
for($i = 0; $i < $num; $i++) {
$row = $mysql_result->fetch_assoc();
echo '<tr>\n';
echo '<td>'.$row['col1'].'</td>\n';
echo '<td>'.$row['col2'].'</td>\n';
echo '</tr>\n';
echo '<br />';
}
?>
</table>