欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

分页功能完善及用户信息的操作

程序员文章站 2022-04-05 13:01:41
...

分页功能

  1. 编写连接数据库文件 connect.php
    1. try
    2. {
    3. // 连接数据库
    4. $pdo = new PDO('mysql:host=localhost;dbname=tp5;charset=utf8','root','root');
    5. }catch(PDOException $e){
    6. echo $e->getMessage();
    7. }catch(Throwable $e){
    8. echo $e->getMessage();
    9. }
  2. 查询分页数据文件 dataGet.php

    1. <?php
    2. // 引进数据库连接
    3. require 'connect.php';
    4. // 获取分页数据
    5. // 1.每页显示的数量
    6. $num = 5;
    7. // 2.当前页码,默认为1
    8. $page = $_GET['p'] ?? 1;
    9. // 3.计算每一页的第一条记录的显示偏移量
    10. $offset = ($page-1) * $num;
    11. // 4.获取分页数据
    12. $sql = "SELECT * FROM `tp_user` LIMIT {$num} OFFSET {$offset}";
    13. $users = $pdo->query($sql)->fetchAll();
    14. print_r($users);
    15. echo '<hr>';
    16. // 计算总页数
    17. // 计算表*有多少条记录
    18. // 每一页显示几条
    19. // 总页数 = ceil(记录总数 / 每页的记录数)
    20. $sql1 = "SELECT CEIL(COUNT(`id`)/{$num}) AS `total` FROM `tp_user`";
    21. // 计算总页数
    22. $pages = $pdo->query($sql1)->fetch()['total'];
    23. echo $pages;

    分页功能完善及用户信息的操作

  3. 数据显示
    先引进查询数据文件

    1. <?php require 'dataGet.php' ?>

    把查询到的数据渲染在table表格中

    1. <!-- 表格 -->
    2. <table>
    3. <caption>用户信息表</caption>
    4. <thead>
    5. <tr>
    6. <td>id</td>
    7. <td>name</td>
    8. <td>age</td>
    9. <td>操作</td>
    10. </tr>
    11. </thead>
    12. <tbody>
    13. <?php foreach($users as $user): ?>
    14. <tr>
    15. <td><?=$user['id']?></td>
    16. <td><?=$user['username']?></td>
    17. <td><?=$user['age']?></td>
    18. <td><button>编辑</button><button>删除</button></td>
    19. </tr>
    20. <?php endforeach ?>
    21. </tbody>
    22. </table>

    分页功能完善及用户信息的操作
    添加分页栏

    1. <!-- 分页栏 -->
    2. <!-- 分页条的动态生成 -->
    3. <!-- 跳转地址的动态生成 -->
    4. <!-- 当前页码的高亮显示 -->
    5. <?php for($i=1;$i<=$pages;$i++): ?>
    6. <?php
    7. $jump = sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
    8. // echo $jump;
    9. // $i: 分页中的页码
    10. // $page: 在URL中通过GET获取的页码?p=x
    11. $active = ($i == $page) ? 'active' : null;
    12. ?>
    13. <a href="<?=$jump?>" class="<?=$active?>"><?=$i?></a>
    14. <?php endfor ?>

    分页功能完善及用户信息的操作
    分页功能完善及用户信息的操作

  4. 分页功能完善
    添加上一页以及下一页等分界

    1. <p>
    2. <!-- 上一页:解决页面的越界 -->
    3. <?php
    4. // 获取前一页的页码
    5. $prev = $page - 1;
    6. if($page == 1) $prev = 1;
    7. ?>
    8. <?php if($page!=1):?>
    9. <a href="<?=$_SERVER['PHP_SELF'].'?p=1'?>">首页</a>
    10. <a href="<?=$_SERVER['PHP_SELF'].'?p='.$prev?>">上一页</a>
    11. <?php endif ?>
    12. <!-- 正常界面数 -->
    13. <?php for($i=1;$i<=$pages;$i++): ?>
    14. <?php
    15. $jump = sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
    16. $active = ($i == $page) ? 'active' : null;
    17. ?>
    18. <a href="<?=$jump?>" class="<?=$active?>"><?=$i?></a>
    19. <?php endfor ?>
    20. <!-- 下一页:解决页面的越界 -->
    21. <?php
    22. // 获取下一页的页码
    23. $next = $page + 1;
    24. if($next>=$pages) $next = $pages;
    25. ?>
    26. <?php if($page!=$pages): ?>
    27. <a href="<?=$_SERVER['PHP_SELF'].'?p='.$next?>">下一页</a>
    28. <a href="<?=$_SERVER['PHP_SELF'].'?p='.$pages?>">尾页</a>
    29. <?php endif ?>
    30. </p>

    分页功能完善及用户信息的操作
    分页功能完善及用户信息的操作
    分页功能完善及用户信息的操作

用户信息操作

  1. 编辑用户信息
    编辑操作

    1. // 获取操作
    2. $action = $_GET['action'];
    3. $id = $_GET['id'];
    4. switch($action){
    5. // 1:渲染编辑菜单
    6. case 'edit':
    7. // 加载,渲染数据编辑菜单
    8. include 'edit.php';
    9. break;
    10. // 2.执行编辑操作
    11. case 'doedit':
    12. // 更新
    13. $sql = "UPDATE `tp_user` SET `username`=?,`age`=? WHERE `id`=?";
    14. $stmt = $pdo->prepare($sql);
    15. // 新的数据在$_POST
    16. if(!empty($_POST)){
    17. $stmt->execute([$_POST['username'],$_POST['age'],$id]);
    18. if($stmt->rowCount() == 1){
    19. echo '<script>alert("更新成功");location.href="demo2.php"</script>';
    20. }
    21. }
    22. break;
    23. }

    编辑页面

    1. <?php
    2. // 获取要被编辑的数据
    3. $user = $pdo->query("SELECT * FROM `tp_user` WHERE `id`={$id}")->fetch();
    4. print_r($user);
    5. ?>
    6. <!DOCTYPE html>
    7. <html lang="en">
    8. <head>
    9. <meta charset="UTF-8">
    10. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    11. <title>用户编辑</title>
    12. </head>
    13. <body>
    14. <h3>编辑用户</h3>
    15. <form action="<?echo $_SERVER['PHP_SELF']. '?action=doedit&id='.$id?>" method="post">
    16. <p>
    17. <label for="username">用户名:</label>
    18. <input type="text" name="username" id="username" value="<?=$user['username']?>">
    19. </p>
    20. <p>
    21. <label for="age">年龄:</label>
    22. <input type="age" name="age" id="age" value="<?=$user['age']?>">
    23. </p>
    24. <p>
    25. <button>保存</button>
    26. </p>
    27. </form>
    28. </body>
    29. </html>

    编辑跳转

    1. <tbody>
    2. <?php foreach($users as $user): ?>
    3. <tr>
    4. <td><?=$user['id']?></td>
    5. <td><?=$user['username']?></td>
    6. <td><?=$user['age']?></td>
    7. <td>
    8. <button onclick="location.href='handle.php?action=edit&id=<?=$user['id']?>'">编辑</button>
    9. <button>删除</button>
    10. </td>
    11. </tr>
    12. <?php endforeach ?>
    13. </tbody>

    编辑前
    分页功能完善及用户信息的操作
    编辑中
    分页功能完善及用户信息的操作
    分页功能完善及用户信息的操作
    编辑成功后
    分页功能完善及用户信息的操作

  2. 删除用户信息
    删除入口

    1. <button onclick="location.href='handle.php?action=del&id=<?=$user['id']?>'">删除</button>

    删除操作

    1. // 3.执行删除操作
    2. case 'del':
    3. // 删除
    4. $sql = "DELETE FROM `tp_user` WHERE `id`=?";
    5. $stmt = $pdo->prepare($sql);
    6. $stmt->execute([$id]);
    7. if($stmt->rowCount() == 1) echo '<script>alert("删除成功");location.href="demo2.php"</script>';
    8. break;

    删除前
    分页功能完善及用户信息的操作
    删除中
    分页功能完善及用户信息的操作
    删除成功后
    分页功能完善及用户信息的操作