2012-11-09 75 views
-2

當我嘗試從MySQL表中檢索數據時,表格無法正確顯示。基本上,我使用if語句來查看是否存在任何內容(如果用戶發佈了信息),並且如果他們有我轉到在HTML表格中顯示數據的else條件。這是我爲else語句開始的代碼。HTML表格不能正確顯示MySQL數據

else{ 
//BEGIN JOB POSTING 
echo "<table border=1 width=200 height=200>"; 
while($row_job = mysqli_fetch_array($result_job)) 
{ 
echo "<tr>".$row_job['subject']."</tr>"; 
} 
mysqli_free_result($result_job); 
echo "</table>"; 
} 

我把寬度和高度以及邊框的原因是,您可以看到表格的渲染位置以及實際信息的渲染位置。信息正在顯示,它只是並排顯示,沒有空格,並且不在<tr>中。下面是截圖:

Data not rendering in table

瘋狂的事情是,如果你檢查該頁面的源代碼,它看起來像這樣:

<table border=1 width=200 height=200><tr>twkjljl</tr><tr>lkjljl</tr></table> 

但是,如果你檢查元素在谷歌瀏覽器,它看起來是這樣的:

Inspected Element

所以,我想有兩件事情是我改變了代碼,讓他們DISP躺在<td>,它呈現正確。下面是代碼和截圖:

else{ 
//BEGIN JOB POSTING 
echo "<table border=1 width=200 height=200><tr>"; 
while($row_job = mysqli_fetch_array($result_job)) 
{ 
echo "<td>".$row_job['subject']."</td><br />"; 
} 
mysqli_free_result($result_job); 
echo "</tr></table>"; 
} 

Data rendering correctly

雖然這很好,我希望將數據在不同的行不顯示不同的列並不能看到在代碼中錯誤的是。世界正在發生什麼?

+1

我強烈地感覺到,你開始學習有效的HTML意味着什麼以及如何驗證自己的腳本是一個非常好的主意。一個好的開始是http://validator.w3.org/ – hakre

+0

雖然你的問題已經得到解答,但我強烈建議你閱讀HTML表格的文檔。你可能會學到一兩件事:)。至少你應該明白和​​之間的區別,並且​​標籤始終放置在標籤內,但確實閱讀該文檔:) – Lukas1

+0

啊,哈哈,我不敢相信我忽略了這一點。我忙於使用MySQL,並且完全在我的HTML上留下了空白。感謝所有的答案! – MillerMedia

回答

4

<tr>後,您需要在封裝所有<td>數據。

else{ 
//BEGIN JOB POSTING 
echo "<table border=1 width=200 height=200>"; 
while($row_job = mysqli_fetch_array($result_job)) 
{ 
echo "<tr><td>".$row_job['subject']."</td></tr>"; 
} 
mysqli_free_result($result_job); 
echo "</table>"; 
} 
0

嘗試在對使用<tr><td>

else{ 
//BEGIN JOB POSTING 
echo "<table border=1 width=200 height=200>"; 
while($row_job = mysqli_fetch_array($result_job)) 
{ 
echo "<tr><td>".$row_job['subject']."</td></tr>"; 
} 
mysqli_free_result($result_job); 
echo "</table>"; 
} 
0

TR是一個錶行,它由許多表格單元TD的。

因此HTML表看起來像:

<table> 
    <tbody> 
     <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
    </tbody> 
</table> 
1

同時需要TR和TD顯示在表中的元素:

 else{ 
     //BEGIN JOB POSTING 
     echo "<table border=1 width=200 height=200>"; 
     while($row_job = mysqli_fetch_array($result_job)) 
     { 
      echo "<tr><td>".$row_job['subject']."</td></tr>"; 
     } 
      mysqli_free_result($result_job); 
     echo "</table>"; 
    } 

下面是一個表的一行。

<tr><td>row1</td></tr> 

如果你想添加更多的列,你需要添加更多的兩個td。

0

我強烈建議你使用PHP 5.4的爲Iterator Support of Mysqli Results

foreach ($result_job as $row) 
{ 
    echo "<tr><td>$row_job[subject]</td></tr>"; 
} 

如果你不能使用PHP版本 - 我認爲你沒有做具體的意義什麼mysqli_*那正是你需要的是擴展名 - 請使用PDO擴展名。它有更長的支持。