PHP mysql查询到html表只插入第一个表行

时间:2014-10-20 10:55:35

标签: php mysql html-table

我正在尝试将我的所有数据打印到一个html表,该表有效,但仅适用于第一个表行。

我的PHP代码:

    $data = "";
while ($row = mysqli_fetch_assoc($result)) {
   $data = "<tr>
                <td>" . $row['name'] . "</td>
                <td>" . $row['email'] . "</td>
                <td>" . $row['message'] . "</td>
                <td>" . $row['created'] . "</td>
            </tr>";
 }

我的HTML代码:

<!DOCTYPE html>
<html>
<body>

<table border="1">
    <tr>
        <th width="15%">Name</th>
        <th width="15%">Email</th>
        <th width="50%">Message</th>
        <th width="20%">Created</th>
    </tr>
    <?= $data ?>
</table>

</body>
</html>

如何让表自动插入更多行和MySQL数据?

这两个代码都在1个php文件中。

3 个答案:

答案 0 :(得分:1)

在我看来,您正在为while循环的每次迭代将$ data重置为最新行,而不是向该变量添加新的html和数据。而是使用:

$data .= "<tr..."

答案 1 :(得分:1)

$data = "<tr>
            <td>" . $row['name'] . "</td>
            <td>" . $row['email'] . "</td>
            <td>" . $row['message'] . "</td>
            <td>" . $row['created'] . "</td>
        </tr>";

变为

$data .= "<tr>
            <td>" . $row['name'] . "</td>
            <td>" . $row['email'] . "</td>
            <td>" . $row['message'] . "</td>
            <td>" . $row['created'] . "</td>
        </tr>";

答案 2 :(得分:0)

而不是

$data = "<tr>

使用

$data.= "<tr>

表示您将循环中的所有tr附加