PHP表数据输出不是保留结构

时间:2012-08-19 04:12:02

标签: php mysql sql html-table formatting

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

答案 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>