PHP 表数据输出不保留结构


PHP Table data output isn't retaining structure

我有一个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

抱歉,如果措辞令人困惑。

您正在关闭循环内的表,请尝试将</table>拉出循环。

</table>移动到最后一个 PHP 块之后。当您只想循环并创建新行时,您反复关闭表。将表的关闭保存到循环完成之后。

您正在关闭循环内的表。完成后,您需要关闭它。

<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,因此某些内容(例如打开时缺少表格标签)显示得好像它前面有一个。

正如其他人提到的。您的桌子正在循环内关闭。我将所有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>