博客列表 >PHP后台用户管理列表

PHP后台用户管理列表

阿心
阿心原创
2020年05月15日 19:37:01858浏览

style.css

  1. *{
  2. padding:0;
  3. margin:0;
  4. box-sizing:border-box;
  5. color:#555;
  6. }
  7. body{
  8. display:flex;
  9. flex-direction:column;
  10. align-items:center;
  11. }
  12. table{border:1px solid #CCC;width:80%;border-collapse:collapse;text-align:center;}
  13. table caption{
  14. font-size:1.2rem;
  15. margin:10px;
  16. }
  17. table thead tr:only-of-type{background:lightblue;}
  18. table td,table th{border:1px solid;padding:5px;}
  19. table tr:hover{background:#DDD}
  20. table button{
  21. width:56px;
  22. height:26px;
  23. }
  24. table button:last-of-type{color:red;}
  25. p{display:flex;}
  26. p a{text-decoration:none;color:#555;border:1px solid;padding:5px 10px;margin:10px 2px;}
  27. .active{background:red;color:#FFF;border:1px solid red}

user_list.php用户管理列表

  1. <?php
  2. require 'user_page.php';
  3. ?>
  4. <!DOCTYPE html>
  5. <html lang="en">
  6. <head>
  7. <meta charset="UTF-8">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9. <link rel="stylesheet" href="style.css">
  10. <title>用户列表</title>
  11. </head>
  12. <body>
  13. <table>
  14. <caption>用户管理</caption>
  15. <thead>
  16. <tr>
  17. <th>id</th>
  18. <th>账户</th>
  19. <th>用户名</th>
  20. <th>性别</th>
  21. <th>电话</th>
  22. <th>存款</th>
  23. <th>操作</th>
  24. </tr>
  25. </thead>
  26. <?php
  27. foreach($users as $user)
  28. {
  29. ?>
  30. <tr>
  31. <td><?php echo $user['id']; ?></td>
  32. <td><?php echo $user['account']; ?></td>
  33. <td><?php echo $user['username']; ?></td>
  34. <td><?php echo $user['sex']; ?></td>
  35. <td><?php echo $user['phone']; ?></td>
  36. <td><?php echo $user['money']; ?></td>
  37. <td>
  38. <button onclick="location.href='user_handle.php?action=edit&id=<?php echo $user['id']; ?>'" >编辑</button>
  39. <button>删除</button>
  40. </td>
  41. </tr>
  42. <?php } ?>
  43. </table>
  44. <p>
  45. <a href="<?php echo $_SERVER['PHP_SELF']."?p=1" ?>">首页</a>
  46. <a href="<?php echo $_SERVER['PHP_SELF']."?p=$prev" ?>">上一页</a>
  47. <!-- 是否显示省略号 -->
  48. <!-- 经过判断,是否有这个值 -->
  49. <?php if(isset($starellipsis)) {?>
  50. <a href=""><? echo $starellipsis ?></a>
  51. <? } ?>
  52. <?php
  53. for($i=$starPage;$i<=$endPage;$i++){
  54. $jump = $_SERVER['PHP_SELF']."?p=$i";
  55. // $jump = sprintf('%s?p=%s',$_SERVER['PHP_SELF'],$i);
  56. $active = ($i == $page) ? 'active':null;
  57. ?>
  58. <a href="<? echo $jump ?>" class="<?php echo $active ?>"><? echo $i ?></a>
  59. <?php } ?>
  60. <!-- 是否显示省略号 -->
  61. <!-- 经过判断,是否有这个值 -->
  62. <?php if(isset($endellipsis)) {?>
  63. <a href=""><? echo $endellipsis ?></a>
  64. <? } ?>
  65. <!-- 是否显示省略号 -->
  66. <a href="<?php echo $_SERVER['PHP_SELF']."?p=$next" ?>">下一页</a>
  67. <a href="<?php echo $_SERVER['PHP_SELF']."?p=$pages" ?>">尾页</a>
  68. </p>
  69. </body>
  70. </html>

用户分页处理机制user_page.php

  1. <?php
  2. require $_SERVER['DOCUMENT_ROOT'].'/config/connect.php';
  3. // 获取P提交的当前页,如没有则默认给个1 ...特别注意get接受的值区分大小写
  4. $page = $_GET['p'] ?? 1;
  5. //每页显示数量
  6. $num = 7;
  7. //CEIL()向上取整,如:值=0.1则取值为1;
  8. $sql="SELECT CEIL(count(`id`)/{$num}) AS `total` FROM `user`";
  9. //得到总页数
  10. $pages = $pdo->query($sql)->fetch()['total'];
  11. //偏移量offset .
  12. //公式:当前页码数量*(当前第几页-1);如 5*(2-1)= (第二页从索引第5个开始取数据取5个)
  13. $offset = $num * ($page - 1);
  14. //分页数据
  15. $sql="SELECT * FROM `user` LIMIT {$num} OFFSET {$offset}";
  16. $users = $pdo->query($sql)->fetchAll();
  17. // var_dump($users);
  18. //分页条显示7个页码
  19. $showPages = 7;
  20. //分页条起始页码
  21. $starPage=1;
  22. //终止页码
  23. $endPage = $pages;
  24. //分页偏移量
  25. //公式:(当前总页码数 - 1)/2 平均两边开
  26. $offset = ($showPages -1)/2;//3
  27. //如果分页数量<总页数,则显示需要进入判断是否需要显示“...”。如果分页没有$showPage则不用显示
  28. if($showPages < $pages){
  29. //公式:当前页码 > 偏移量+ 1.则显示“...”。
  30. //比如:偏移量=3 。那么第2页 不>偏移量。结果=不显示。
  31. // (?p=6)>($offset=3)=需要显示
  32. if($page > $offset + 1){
  33. $starellipsis= '...';
  34. }
  35. // 重置当前页码条 (给出新的起点和终点值)
  36. //公式:当前页码> 偏移量(如:(?p=2)>3=false )
  37. if($page > $offset){
  38. //为true则重置起点值
  39. //公式:当前页 - 偏移量 。如:5-3=2 。起点就是2
  40. $starPage= $page - $offset;
  41. //终点
  42. $endPage = $page + $offset;
  43. if($endPage > $pages)
  44. {
  45. $endPage = $pages;
  46. }
  47. }else{
  48. $starPage = 1;
  49. $endPage = $showPages;
  50. }
  51. //如果:当前页+偏移量 >总页数
  52. if($page+$offset > $pages){
  53. //向前借位
  54. // 公式:新起点=当前起点-(当前页码 + 偏移量 -终点位置)
  55. $starPage = $starPage-($page+$offset - $endPage);
  56. }
  57. // 尾部显示...
  58. //条件:分页条码<总页 && 当前页 + 偏移量 < 总页
  59. if($showPage < $pages && $page + $offset < $pages)
  60. {
  61. $endellipsis='...';
  62. }
  63. }
  64. //上下页码
  65. $prev = $page - 1; // 0
  66. if($page == 1){
  67. $prev = 1; // 1
  68. }
  69. $next = $page + 1;
  70. if($page == $pages){
  71. $next = $pages;
  72. }

用户编辑删除文件

  1. <?php
  2. <?php
  3. require $_SERVER['DOCUMENT_ROOT'].'/config/connect.php';
  4. $action=$_GET['action'];
  5. $id=$_GET['id'];
  6. switch($action){
  7. case 'edit':
  8. include 'edit.php';
  9. break;
  10. case 'doedit':
  11. // // 1. 拼装SQL语句字符串
  12. // $sql = 'UPDATE `user` SET ';
  13. // $sql .='`username`=:username,`phone`=:phone,';
  14. // $sql .='`money`=:money WHERE `id`=:id';
  15. // // 2. 预处理
  16. // $stmt = $pdo->prepare($sql);
  17. // // 3. 绑定参数
  18. // // bindParam 第一个参数是字符串 和$sql字符串上的对应上
  19. // // bindParam 第二个参数是form提交过来的值 用于绑定第一个参数 例如: ':username' <---- $_POST['username']
  20. // // bindParam 第三个参数是值的类型 你表中字段是什么类型,就用什么类型
  21. // $stmt->bindParam(':username', $_POST['username'], PDO::PARAM_STR);
  22. // $stmt->bindParam(':phone', $_POST['phone'], PDO::PARAM_INT);
  23. // $stmt->bindParam(':money', $_POST['money'], PDO::PARAM_INT);
  24. // $stmt->bindParam(':id', $_POST['id'], PDO::PARAM_INT);
  25. // // 4. 以上参数绑定之后就执行SQL
  26. // $stmt->execute();
  27. $sql='UPDATE `user` SET `username`=:username, `phone`=:phone,`money`=:money WHERE `id`=:id';
  28. $stmt = $pdo->prepare($sql);
  29. $stmt->execute($_POST);
  30. // 5. 返回受影响的行数
  31. if($stmt->rowCount() >= 1)
  32. {
  33. // 这里echo script还需要使用单引要不然也会出错
  34. echo '<script>alert("更新成功");location.href="user_list.php";</script>';
  35. }
  36. break;
  37. case 'del':
  38. // echo $id;die;
  39. $sql="DELETE FROM `user` where `id`=$id";
  40. // var_dump($sql);die;
  41. $stmt = $pdo->query($sql);
  42. // var_dump($stmt);die;
  43. if($stmt->rowCount() === 1 )
  44. {
  45. echo '<script>alert("删除成功");location.href="user_list.php";</script>';
  46. }
  47. break;
  48. }

总结:这几天学习PHP越发感觉困难了。很多完全听不懂。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议