2012-08-19 82 views
0

我有一個mySQL數據庫,我用PHP來抓取它並將其顯示在HTML表格中。它的設置是這樣的: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> 
</table> 

<?php 

    $i++; 
    echo '<br />'; 
    } 

?> 

問題:對於第一組數據,它拉動,列與標題對齊。但是對於之後的每一個重複行,列都被一個空格分開,並且不與其標題對齊。它看起來像這樣:

Title 1  Title 2 

col1   col2 

col1 col2 
col1 col2 

對不起,如果措辭混亂。

+0

什麼是結果HTML? – Brad 2012-08-19 04:14:27

回答

2

您正在關閉循環內的表格,試圖將</table>拉出循環。

+0

謝謝!很簡單。現在唯一的問題是,不知何故,現在在頁面頂部插入50行換行符,我不知道爲什麼。 – Paul 2012-08-19 04:22:35

+0

你可以省去'echo'
';' – mash 2012-08-19 04:28:47

+0

啊,非常感謝。我也看到我被低估了,可能是因爲這是一個很簡單的問題?我應該在這裏避免提出初學者問題嗎? – Paul 2012-08-19 04:30:51

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,所以顯示某些內容(如打開時缺少表格標籤),就好像它前面有一個右邊那樣。

0

</table>移到最後一個PHP塊後面。當您只想循環並創建新行時,您會重複關閉表格。保存表格的關閉,直到循環完成。

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>