Php 为什么在转储MYSQL表时只正确显示一行?

Php 为什么在转储MYSQL表时只正确显示一行?,php,mysql,html-table,Php,Mysql,Html Table,我试图通过PHP将我的MYSQL表转储到我的HTML页面上,但遇到了一些问题 目前我有(使用Bootstrap 4): require('db.php'); $sql=“从`users`;中选择*”; $table=“”; $result=mysqli_query($connection,$sql)或die(mysql_error()); $table=“”; $table.=”; $table.=”; $fieldsInfo=$result->fetch_fields(); foreach($

我试图通过PHP将我的MYSQL表转储到我的HTML页面上,但遇到了一些问题

目前我有(使用Bootstrap 4):

require('db.php');
$sql=“从`users`;中选择*”;
$table=“”;
$result=mysqli_query($connection,$sql)或die(mysql_error());
$table=“”;
$table.=”;
$table.=”;
$fieldsInfo=$result->fetch_fields();
foreach($fieldsInfo作为$fieldinfo)
$table.=“{$fieldinfo->name}”;
$table.=”;
$table.=”;
$table.=”;
而($row=$result->fetch_assoc()){
$table.=”;
foreach($row作为$columnValue){
$table.=“$columnValue”;
}
$table.=”;
$table.=”;
$table.=”;
}
echo$表;
?>
我的结果是这样的:

我相信这就是我在代码中放置
值的地方,但我已经尝试将它们放置在循环的内部和外部。当放置在我的循环中时,我的表会将我的所有列值返回到第一个表标题中。我通过Firefox“inspect element”进一步检查了我的代码,发现表中的第二行实际上超出了
的范围,这对我来说毫无意义,因为我的循环显然是在我使用
之前

希望有人能帮我解释一下,我刚刚开始使用PHP,所以我对它不是很在行;但我想学习。

使用以下代码:

while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";
    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";
    }
    $table .= "</tr>";

}
$table .= "</tbody>";
$table .= "</table>";
while($row=$result->fetch_assoc()){
$table.=”;
foreach($row作为$columnValue){
$table.=“$columnValue”;
}
$table.=”;
}
$table.=”;
$table.=”;
使用以下代码:

while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";
    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";
    }
    $table .= "</tr>";

}
$table .= "</tbody>";
$table .= "</table>";
while($row=$result->fetch_assoc()){
$table.=”;
foreach($row作为$columnValue){
$table.=“$columnValue”;
}
$table.=”;
}
$table.=”;
$table.=”;
您的
标记在它们所在的位置看起来很好。问题是关闭
标记位于while循环内。把它们往下移,它就会出来

while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";

    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";

    }
    $table .= "</tr>";
}
$table .= "</tbody>";
$table .= "</table>";
echo $table;
while($row=$result->fetch_assoc()){
$table.=”;
foreach($row作为$columnValue){
$table.=“$columnValue”;
}
$table.=”;
}
$table.=”;
$table.=”;
echo$表;
您的
标记在它们所在的位置看起来很好。问题是关闭
标记位于while循环内。把它们往下移,它就会出来

while ($row = $result->fetch_assoc()) {
    $table .= "<tr>";

    foreach ($row as $columnValue) {
        $table .= "<td>$columnValue</td>";

    }
    $table .= "</tr>";
}
$table .= "</tbody>";
$table .= "</table>";
echo $table;
while($row=$result->fetch_assoc()){
$table.=”;
foreach($row作为$columnValue){
$table.=“$columnValue”;
}
$table.=”;
}
$table.=”;
$table.=”;
echo$表;

您已经关闭了while循环中的tbody和table标记。将这些结束标记移到循环外,它应该会修复它。修复它。我觉得自己是个白痴,没听清楚。你能回答这个问题吗?这样我就可以做标记了?非常感谢。当然,没问题。没有必要觉得自己像个白痴;这发生在我们中最好的人身上。你已经关闭了while循环中的tbody和table标记。将这些结束标记移到循环外,它应该会修复它。修复它。我觉得自己是个白痴,没听清楚。你能回答这个问题吗?这样我就可以做标记了?非常感谢。当然,没问题。没有必要觉得自己像个白痴;这发生在我们中最好的人身上。
也不应该在while循环中。
也不应该在while循环中。表显示了它现在应该如何工作。真不敢相信我试图移动
td
,但我甚至没有在循环中捕捉到
表和
tbody
!这是一个容易犯的错误。我曾经用Firefox中的“查看页面源代码”来快速发现这样的标记错误。它以红色突出显示无效标记。我希望chrome也能这么做,因为我用它来做大多数其他的事情。我甚至没有意识到这一点。将我的代码还原为出现错误时使用的“查看页面源代码”,令人惊讶。如果我早知道的话,我会很容易抓住的。谢谢你的额外建议,这将在我学习的过程中对我有很大的帮助。表中显示了它现在应该如何工作。真不敢相信我试图移动
td
,但我甚至没有在循环中捕捉到
表和
tbody
!这是一个容易犯的错误。我曾经用Firefox中的“查看页面源代码”来快速发现这样的标记错误。它以红色突出显示无效标记。我希望chrome也能这么做,因为我用它来做大多数其他的事情。我甚至没有意识到这一点。将我的代码还原为出现错误时使用的“查看页面源代码”,令人惊讶。如果我早知道的话,我会很容易抓住的。谢谢你的额外建议,这对我学习有很大帮助。