Blogger Information
Blog 29
fans 1
comment 0
visits 23255
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP后台用户管理列表
阿心
Original
876 people have browsed it

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越发感觉困难了。很多完全听不懂。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:不能永远躺在温柔乡中, 码农的高工资不是那么轻松拿的, 感觉到难就对了, 大家都一样都觉得难, 谁挺过来了谁就成功了,所以我不断的提示大伙,成功路上永不拥挤,因为走到最后的人极少, 希望有你...
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post