我试图通过PHP将我的MYSQL表转储到我的HTML页面上,而且我遇到了一些问题,而且我遇到了一些问题。
目前我有(使用Bootstrap 4):
require('db.php');
$sql = "SELECT * FROM `users`;";
$table = "";
$result = mysqli_query($connection, $sql) or die(mysql_error());
$table = "<table class='table table-hover table-dark'>";
$table .= "<thread>";
$table .= "<tr>";
$fieldsInfo = $result->fetch_fields();
foreach($fieldsInfo as $fieldinfo)
$table .= "<th scope='col'>{$fieldinfo->name}</th>";
$table .= "</tr>";
$table .= "</thead>";
$table .= "<tbody>";
while ($row = $result->fetch_assoc()) {
$table .= "<tr>";
foreach ($row as $columnValue) {
$table .= "<td>$columnValue</td>";
}
$table .= "</tr>";
$table .= "</tbody>";
$table .= "</table>";
}
echo $table;
?>
我的结果如下: Table Display
我相信我将<tr>
和</tr>
值放在我的代码中,但我已尝试将它们放在我的内外两侧循环。当放在我的循环内部时,我的表将所有列值返回到第一个表标题中。我通过Firefox进一步检查了我的代码&#39;检查元素&#39;我看到表中的第二行实际上超出了<table>
的范围,这对我来说没有意义,因为我的循环显然是在我使用</table>
之前。
希望有人可以为我阐明这一点,我刚刚开始使用PHP,所以我对它并不满意;但我想学习。
答案 0 :(得分:2)
您的<tr>
和</tr>
标记看起来很好。问题是结束</tbody>
和</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;
答案 1 :(得分:0)
使用此代码:
while ($row = $result->fetch_assoc()) {
$table .= "<tr>";
foreach ($row as $columnValue) {
$table .= "<td>$columnValue</td>";
}
$table .= "</tr>";
}
$table .= "</tbody>";
$table .= "</table>";