【问题标题】:PHP Mysql query to html table only inserts to first table rowPHP Mysql 查询到 html 表只插入到第一个表行
【发布时间】:2018-05-30 23:32:45
【问题描述】:

我正在尝试将我的所有数据打印到一个 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 文件中。

【问题讨论】:

    标签: php mysql html-table


    【解决方案1】:

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

    $data .= "<tr..."
    

    【讨论】:

      【解决方案2】:
      $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>";
      

      【讨论】:

        【解决方案3】:

        代替

        $data = "<tr>
        

        使用

        $data.= "<tr>
        

        这意味着您将所有 tr 附加到循环中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-04-15
          • 2021-09-07
          • 2014-08-12
          • 1970-01-01
          • 2011-01-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多