php通用循环读取数据库信息并支持豪华翻页v0.2版本
就像一个简单的cms,为了安全还做了一些许的优化,但是没什么太大的卵用,只要自己用的方便就可以。
首先数据库配置文件写一个 config.php
<?php
// 数据库配置
return [
'database' => [
'servername' => 'localhost', // 数据库服务器地址
'username' => 'root', // 数据库用户名
'password' => 'sqlpass', // 数据库密码
'dbname' => 'sql' // 数据库名称
]
];
?>
主文件 index.php 负责调用数据库信息 输出显示
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>附近公司查看器</title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
background-color: #f1f1f1;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
background-color: #ffffff;
border-radius: 10px;
box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
th {
background-color: #007bff;
color: white;
}
tr:hover {
background-color: #f2f2f2;
}
@media screen and (max-width: 600px) {
table {
border: 0;
}
table thead {
display: none;
}
table tr {
margin-bottom: 10px;
display: block;
border-bottom: 2px solid #ddd;
}
table td {
display: block;
text-align: right;
font-size: 13px;
border-bottom: 1px dotted #ccc;
}
table td::before {
content: attr(data-label);
float: left;
font-weight: bold;
text-transform: uppercase;
}
}
.pagination {
display: flex;
justify-content: center;
margin-top: 20px;
}
.pagination a {
color: #007bff;
padding: 8px 16px;
text-decoration: none;
transition: background-color 0.3s;
border: 1px solid #ddd;
margin: 0 4px;
border-radius: 4px;
}
.pagination a:hover {
background-color: #007bff;
color: white;
}
</style>
</head>
<body>
<div class="container">
<?php
// 密码安全
$config = include 'config.php';
$servername = $config['database']['servername'];
$username = $config['database']['username'];
$password = $config['database']['password'];
$dbname = $config['database']['dbname'];
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 分页相关参数
$items_per_page = 10; // 每页显示的记录数
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 当前页码
// 查询总记录数
$count_sql = "SELECT COUNT(*) AS total FROM qiyea";
$count_result = $conn->query($count_sql);
$total_items = $count_result->fetch_assoc()['total'];
// 计算总页数
$total_pages = ceil($total_items / $items_per_page);
// 计算当前页的起始位置
$start = ($page - 1) * $items_per_page;
// 处理用户输入并转义特殊字符
$start_escaped = $conn->real_escape_string($start);
$items_per_page_escaped = $conn->real_escape_string($items_per_page);
// 准备查询模板
$sql = "SELECT id, title, hy, dz, gw FROM qiyea LIMIT ?, ?";
// 创建预处理语句
$stmt = $conn->prepare($sql);
// 绑定参数
$stmt->bind_param("ii", $start_escaped, $items_per_page_escaped);
// 执行查询
$stmt->execute();
// 获取结果集
$result = $stmt->get_result();
if ($result->num_rows > 0) {
echo '<table>';
echo '<thead>';
echo '<tr>';
echo '<th>标题</th>';
echo '<th>行业</th>';
echo '<th>地址</th>';
echo '<th>官网</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
while($row = $result->fetch_assoc()) {
echo '<tr>';
echo '<td data-label="标题">' . htmlspecialchars($row["title"]) . '</td>';
echo '<td data-label="行业">' . htmlspecialchars($row["hy"]) . '</td>';
echo '<td data-label="地址">' . htmlspecialchars($row["dz"]) . '</td>';
echo '<td data-label="官网">' . htmlspecialchars($row["gw"]) . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
// 输出翻页链接
echo '<div class="pagination">';
if ($total_pages > 1) {
if ($page > 1) {
echo '<a href="?page=1">首页</a>';
echo '<a href="?page=' . ($page - 1) . '">上一页</a>';
}
for ($i = max(1, $page - 3); $i <= min($page + 3, $total_pages); $i++) {
echo '<a href="?page=' . $i . '">' . $i . '</a>';
}
if ($page < $total_pages) {
echo '<a href="?page=' . ($page + 1) . '">下一页</a>';
echo '<a href="?page=' . $total_pages . '">尾页</a>';
}
}
echo '</div>';
} else {
echo '0 结果';
}
// 关闭连接
$stmt->close();
$conn->close();
?>
</div>
</body>
</html>
此版本带了简单的前端 支持响应式 支持翻页 默认每页显示10条 自己修改查询语句和配置文件即可使用
最后自己的字段名 就是改一下// 获取结果集 这一块地方的标题