0

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

对不起,如果措辞令人困惑。

4

4 回答 4

2

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

于 2012-08-19T04:14:53.413 回答
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,所以某些事情(比如打开时缺少表格标签) 显示就好像它前面有一个。

于 2012-08-19T04:14:38.750 回答
0

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

于 2012-08-19T04:14:41.023 回答
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>
于 2012-08-19T04:36:09.657 回答