php实现一个简单的MySQL分页

一、案例演示:

在这里插入图片描述

二、php 代码

<?php
$servername = "localhost";  // MySQL服务器名称或IP地址  
$username = "root";     // MySQL用户名  
$password = "123456";     // MySQL密码  
$dbname = "test";       // 要连接的数据库名称  
$port = "3307";       // 要连接的数据库名称  

// 创建连接  
$dbc = new mysqli($servername, $username, $password, $dbname, $port);

// 检查连接是否成功  
if ($dbc->connect_error) {  
    die("连接失败: " . $dbc->connect_error);  
}  
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>分页</title>
    <link rel="stylesheet" href="./css/bootstrap.min.css">
    <script src="./js/jquery.min.js"></script>
    <script src="./js/bootstrap.min.js"></script>
    <style>
        body {
            width: 100%;
            overflow: hidden;
            background: url("background.jpeg") no-repeat;
            background-size: cover;
        }
        .table-container {
            width: 80%;
            margin: 0 auto;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            background-color: white;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
            text-align: center;
        }
        th {
            background-color: #f2f2f2;
        }
        .pagination {
            display: flex;
            justify-content: center;
        }
    </style>
</head>

<body>
    
    <h1 style="text-align: center"><strong>分页</strong></h1>
    <div class="table-container">
        <table class="table table-hover">
            <tr>
                <th>id</th>
                <th>姓名</th>
            </tr>
            <?php
                // 定义每页显示的记录数
                $pageSize = 10;

                // 获取当前页码,默认为第一页
                $page = isset($_GET['page']) ? intval($_GET['page']) : 1;

                // 计算当前页码对应的记录偏移量
                $offset = ($page - 1) * $pageSize;

                $sql = "SELECT * FROM page order by id asc LIMIT $offset, $pageSize";

                $res = mysqli_query($dbc, $sql);
                // 计算总记录数
                $totalSql = "SELECT COUNT(*) AS total FROM page";
                $totalResult = mysqli_query($dbc, $totalSql);
                $totalRow = mysqli_fetch_assoc($totalResult);
                $total = $totalRow['total'];

                // 计算总页数
                $totalPages = ceil($total / $pageSize);

                foreach ($res as $row) {
                    echo "<tr>";
                    echo "<td>{$row['id']}</td>";
                    echo "<td>{$row['name']}</td>";
                    echo "</tr>";
                }
            ?>
        </table>
    </div>
    <div style="text-align: center; margin-top: 20px;">
        <ul class="pagination">
            <?php
            // 生成分页链接
            for ($i = 1; $i <= $totalPages; $i++) {
                // 根据当前页添加特殊样式
                $activeClass = ($i == $page) ? 'active' : '';
                echo "<li class='$activeClass'><a href='index.php?page=$i'>$i</a></li>";
            }
            ?>
        </ul>
    </div>
</body>

</html>

相关推荐

  1. mysql原理、php实现

    2024-06-15 23:20:01       38 阅读
  2. PHP篇——html+php实现表单提交一个简单例子

    2024-06-15 23:20:01       41 阅读
  3. mysql解决深度问题

    2024-06-15 23:20:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 23:20:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 23:20:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 23:20:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 23:20:01       18 阅读

热门阅读

  1. 解释 RESTful API, 如何使用它构建 web 应用程序

    2024-06-15 23:20:01       7 阅读
  2. Day39

    2024-06-15 23:20:01       4 阅读
  3. C++封装dll lib

    2024-06-15 23:20:01       11 阅读
  4. 技术周总结2024.06.10~06.16

    2024-06-15 23:20:01       6 阅读
  5. 【LVGL v8.3】切换界面时内存变化分析

    2024-06-15 23:20:01       7 阅读
  6. 支持向量机(SVM)中核函数的本质意义

    2024-06-15 23:20:01       6 阅读
  7. 前端进阶-js查漏补缺

    2024-06-15 23:20:01       4 阅读
  8. 78978

    2024-06-15 23:20:01       5 阅读