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

  • PHP 原生操作 Mysql 增删改查案例

  • 基于上面文章的文件,调整了 index.php 代码,支持分页查询显示。

    • 效果

    • 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>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡尔特斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值