php实现动态表格
PHP 实现动态表格的方法
从数据库动态生成表格
连接数据库并查询数据,将结果渲染为 HTML 表格:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table border='1'><tr><th>ID</th><th>Name</th><th>Email</th></tr>";
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["name"]."</td><td>".$row["email"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
$conn->close();
?>
通过数组动态生成表格
使用 PHP 数组数据生成表格:
<?php
$employees = [
["John", "Doe", "john@example.com"],
["Jane", "Smith", "jane@example.com"],
["Bob", "Johnson", "bob@example.com"]
];
echo "<table border='1'>";
echo "<tr><th>First Name</th><th>Last Name</th><th>Email</th></tr>";
foreach ($employees as $employee) {
echo "<tr>";
foreach ($employee as $cell) {
echo "<td>$cell</td>";
}
echo "</tr>";
}
echo "</table>";
?>
添加动态交互功能
实现可编辑的动态表格:
<?php
// 假设数据来自数组
$products = [
["Product 1", 10.99, 5],
["Product 2", 24.50, 3],
["Product 3", 5.25, 8]
];
echo "<form method='post'>";
echo "<table border='1'><tr><th>Name</th><th>Price</th><th>Quantity</th><th>Action</th></tr>";
foreach ($products as $index => $product) {
echo "<tr>";
echo "<td><input type='text' name='products[$index][name]' value='{$product[0]}'></td>";
echo "<td><input type='number' name='products[$index][price]' value='{$product[1]}' step='0.01'></td>";
echo "<td><input type='number' name='products[$index][quantity]' value='{$product[2]}'></td>";
echo "<td><button type='submit' name='update' value='$index'>Update</button></td>";
echo "</tr>";
}
echo "</table>";
echo "</form>";
if (isset($_POST['update'])) {
$index = $_POST['update'];
// 处理更新逻辑
}
?>
使用 Bootstrap 美化动态表格
结合 Bootstrap 创建响应式表格:
<?php
$data = [
["ID" => 1, "Name" => "Alice", "Age" => 28],
["ID" => 2, "Name" => "Bob", "Age" => 32],
["ID" => 3, "Name" => "Charlie", "Age" => 25]
];
echo '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">';
echo '<div class="table-responsive">';
echo '<table class="table table-striped table-hover">';
echo '<thead class="table-dark"><tr>';
// 生成表头
foreach (array_keys($data[0]) as $header) {
echo "<th>$header</th>";
}
echo '</tr></thead><tbody>';
// 生成表格内容
foreach ($data as $row) {
echo "<tr>";
foreach ($row as $cell) {
echo "<td>$cell</td>";
}
echo "</tr>";
}
echo '</tbody></table></div>';
?>
动态表格分页实现
添加分页功能:
<?php
$perPage = 5;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;
// 模拟数据
$allData = range(1, 50);
$pageData = array_slice($allData, $offset, $perPage);
echo "<table border='1'><tr><th>Item</th></tr>";
foreach ($pageData as $item) {
echo "<tr><td>$item</td></tr>";
}
echo "</table>";
// 分页链接
$totalPages = ceil(count($allData) / $perPage);
for ($i = 1; $i <= $totalPages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
?>
以上方法提供了不同场景下实现 PHP 动态表格的方案,可以根据具体需求选择合适的实现方式。







