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

本文涉及的产品
RDSClaw,2核4GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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>

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
10月前
|
JSON 数据处理 PHP
PHP数组处理技巧:高效操作数据集合
PHP数组处理技巧:高效操作数据集合
|
10月前
|
JSON 安全 大数据
PHP中的数组处理艺术:灵活高效的数据操作
PHP中的数组处理艺术:灵活高效的数据操作
|
7月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
7月前
|
关系型数据库 MySQL PHP
PHP和Mysql前后端交互效果实现
本文介绍了使用PHP连接MySQL数据库的基本函数及其实现案例。内容涵盖数据库连接、选择数据库、执行查询、获取结果等常用操作,并通过用户登录和修改密码的功能实例,展示了PHP与MySQL的交互过程及代码实现。
425 0
PHP和Mysql前后端交互效果实现
|
10月前
|
JSON 定位技术 PHP
PHP技巧:解析JSON及提取数据
这就是在PHP世界里探索JSON数据的艺术。这场狩猎不仅仅是为了获得数据,而是一种透彻理解数据结构的行动,让数据在你的编码海洋中畅游。通过这次冒险,你已经掌握了打开数据宝箱的钥匙。紧握它,让你在编程世界中随心所欲地航行。
286 67
|
12月前
|
关系型数据库 MySQL Linux
查看Linux、Apache、MySQL、PHP版本的技巧
以上就是查看Linux、Apache、MySQL、PHP版本信息的方法。希望这些信息能帮助你更好地理解和使用你的LAMP技术栈。
532 17
|
12月前
|
关系型数据库 MySQL 大数据
大数据新视界--大数据大厂之MySQL 数据库课程设计:MySQL 数据库 SQL 语句调优的进阶策略与实际案例(2-2)
本文延续前篇,深入探讨 MySQL 数据库 SQL 语句调优进阶策略。包括优化索引使用,介绍多种索引类型及避免索引失效等;调整数据库参数,如缓冲池、连接数和日志参数;还有分区表、垂直拆分等其他优化方法。通过实际案例分析展示调优效果。回顾与数据库课程设计相关文章,强调全面认识 MySQL 数据库重要性。为读者提供综合调优指导,确保数据库高效运行。
|
7月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
491 158
|
7月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
7月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1229 152

推荐镜像

更多
下一篇
开通oss服务