-2

当我尝试从 MySQL 表中检索数据时,表未正确呈现。基本上,我使用 if 语句来查看是否存在任何内容(如果用户已发布信息),如果存在,我会转到在 HTML 表中显示数据的 else 条件。这是我为 else 语句开始的代码。

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>. 这是一个屏幕截图:

数据未在表中呈现

疯狂的是,如果你检查这个页面的源代码,它看起来像这样:

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

但是,如果您在 Google Chrome 中检查该元素,它看起来像这样:

检查元素

所以我尝试了几件事,我更改了代码以使其显示<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>";
}

正确渲染数据

虽然这很好,但我希望数据显示在不同的行而不是不同的列中,并且看不到代码中的错误在哪里。世界上到底发生了什么?

4

5 回答 5

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>";
}
于 2012-11-09T19:42:38.007 回答
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。

于 2012-11-09T19:42:53.273 回答
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>";
}
于 2012-11-09T19:42:07.637 回答
0

TR是一个表格行,由许多表格单元格组成TD

因此,一个 HTML 表格如下所示:

<table>
    <tbody>
        <tr>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </tbody>
</table>
于 2012-11-09T19:42:41.340 回答
0

我强烈建议您使用 PHP 5.4 来支持 Mysqli 结果的迭代器

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

如果你不能使用那个 PHP 版本——我假设你没有做任何mysqli_*特定的事情,因为你需要那个扩展——PDO而是使用扩展。它拥有这种支持的时间要长得多。

于 2012-11-09T19:49:33.953 回答