PHP 原生操作 Mysql 分页数据案例

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: PHP 原生操作 Mysql 分页数据案例

  • 效果

image.png

  • index.php
<?php
// 导入公共文件
require_once("./db.php");
// 一页多少条数据
$pagesize = 2;
// 页码,默认 1
$page = isset($_GET['page']) ? $_GET['page'] : 1;
// 开始行号
$startRow = max(($page - 1), 0) * $pagesize;
// 执行查询语句
$sql = "select * from user";
$result = mysqli_query($link, $sql);
// 总条数
$count = mysqli_num_rows($result);
// 总页数
$pages = ceil($count / $pagesize);
// 构建查询分页 sql 语句,注意我这里用的 `.=` 也就是用上面的 sql 语句拼接下面的 sql 语句
$sql .= " order by id asc limit {$startRow},{$pagesize}";
// 再次执行查询语句
$result = mysqli_query($link, $sql);
// 获取所有行数据
$arrs = mysqli_fetch_all($result, MYSQLI_ASSOC);
// print_r($arrs);
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>
    // 添加用户
    function addUser() {
      location.href = "./add.php";
    }
    // 删除用户
    function deleteUser(id) {
      // 询问是否删除
      if (window.confirm("确定要删除吗?")) {
        // 跳转到 delete.php 页面进行删除,只要不是表单发送的都是 GET 请求
        location.href = "./delete.php?id="+id;
      }
    }
    // 修改用户
    function modifyUser(id) {
      // 跟添加一样,跳转新页面即可
    }
  </script>
</head>
<body style="display: flex; align-items: center; flex-direction: column;">
  <!-- 提示 -->
  <h2>总共有 <?php echo $count ?> 个人</h2>
  <a href="#" onclick="addUser()" style="margin-bottom: 20px;">添加用户</a>
  <!-- 列表 -->
  <table width="300" border="1" rules="all" cellpadding="5">
    <!-- 头部 -->
    <tr bgcolor="#ccc">
      <th>id</th>
      <th>名称</th>
      <th>年龄</th>
      <th>操作</th>
    </tr>
    <!-- 展示数据 -->
    <?php foreach ($arrs as $arr) { ?>
      <tr style="text-align: center;">
        <td><?php echo $arr["id"] ?></td>
        <td><?php echo $arr["name"] ?></td>
        <td><?php echo $arr["age"] ?></td>
        <!-- 操作 -->
        <td>
          <a href="#" onclick="modifyUser(<?php echo $arr['id'] ?>)">修改</a>
          <!-- 删除用户操作 -->
          <a href="#" onclick="deleteUser(<?php echo $arr['id'] ?>)">删除</a>
        </td>
      </tr>
    <?php } ?>
  </table>
  <!-- 分页器 -->
  <div style="margin-top: 20px;">
    <!-- 写法一:列出所有页码 -->
    <!-- <?php for ($i=1; $i <= $pages; $i++) { ?>
      <a href="?page=<?php echo $i ?>"><?php echo $i ?></a>
    <?php } ?> -->
    <!-- 写法二:列出所有页码,当前页不可点 -->
    <!-- <?php
      for ($i=1; $i <= $pages; $i++) { 
        // echo "<a href='index.php?page=$i'>$i</a>";
        // 推荐简写成这样,这样可以使用各种文件目录场景:
        // echo "<a href='?page=$i' style='padding: 5px;'>$i</a>";
        // 判断当前页不能点击
        if ($page == $i) {
          echo "<span style='padding: 5px;'>$i</span>";
        }else {
          echo "<a href='?page=$i' style='padding: 5px;'>$i</a>";
        }
      }
    ?> -->
    <!-- 写法三:列出所有页码,当前页不可点,且不一次性展示所有分页,只展示前后2页页码 -->
    <?php
      $start = max($page - 2, 1);
      $end = min($page + 2, $pages);
      for ($i=$start; $i <= $end; $i++) { 
        if ($page == $i) {
          echo "<span style='padding: 5px;'>$i</span>";
        }else {
          echo "<a href='?page=$i' style='padding: 5px;'>$i</a>";
        }
      }
    ?>
  </div>
</body>
</html>

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
21 1
|
1月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
15 1
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
22 1
|
1月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
22 2
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
9天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
9天前
|
SQL 关系型数据库 MySQL
排序与分页——“MySQL数据库”
排序与分页——“MySQL数据库”
|
12天前
|
PHP
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
web简易开发——通过php与HTML+css+mysql实现用户的登录,注册
|
18天前
|
SQL 关系型数据库 MySQL
mysql基本查询、运算符、排序和分页
mysql基本查询、运算符、排序和分页
|
1月前
|
Java 数据库连接 mybatis
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
Mybatis+mysql动态分页查询数据案例——Mybatis的配置文件(mybatis-config.xml)
20 1