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条 自己修改查询语句和配置文件即可使用

最后自己的字段名 就是改一下// 获取结果集 这一块地方的标题