php实现表格中
实现表格的基本方法
使用PHP生成HTML表格是最常见的需求。可以通过循环数组或数据库查询结果动态生成表格内容。
<table border="1">
<tr>
<th>姓名</th>
<th>年龄</th>
<th>城市</th>
</tr>
<?php
$users = [
['张三', 25, '北京'],
['李四', 30, '上海'],
['王五', 28, '广州']
];
foreach ($users as $user) {
echo "<tr>";
foreach ($user as $value) {
echo "<td>$value</td>";
}
echo "</tr>";
}
?>
</table>
从数据库获取数据生成表格
连接MySQL数据库并查询数据生成表格:
<?php
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
?>
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>邮箱</th>
</tr>
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>".$row["id"]."</td>";
echo "<td>".$row["name"]."</td>";
echo "<td>".$row["email"]."</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='3'>没有找到记录</td></tr>";
}
$conn->close();
?>
</table>
添加表格样式
使用CSS增强表格外观:
<style>
.data-table {
width: 100%;
border-collapse: collapse;
}
.data-table th, .data-table td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
.data-table tr:nth-child(even) {
background-color: #f2f2f2;
}
.data-table th {
background-color: #4CAF50;
color: white;
}
</style>
<table class="data-table">
<!-- 表格内容同上 -->
</table>
实现分页功能
为大量数据添加分页支持:
$per_page = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_page;
$sql = "SELECT * FROM users LIMIT $start, $per_page";
$result = $conn->query($sql);
// 显示分页导航
$total_pages_sql = "SELECT COUNT(*) FROM users";
$result = $conn->query($total_pages_sql);
$total_rows = $result->fetch_row()[0];
$total_pages = ceil($total_rows / $per_page);
echo '<div class="pagination">';
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
echo '</div>';
导出表格数据
将表格数据导出为CSV文件:
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('ID', 'Name', 'Email'));
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()) {
fputcsv($output, $row);
}
fclose($output);
exit;






