亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 64
粉絲 6
評論 2
訪問量 100640
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
PHP 數據分頁
王嬌
原創(chuàng)
1111人瀏覽過

演示鏈接

http://xuanransoftware.com/phpStudy/0513/

演示效果

學習總結

  • 把分頁的數據封裝在一個類中,方便前端調用
  • 輸入頁碼跳轉的時候,form的method設置為get

1.數據分頁控制類 PageList.php

  1. <?php
  2. class PageList
  3. {
  4. public static $page;//當前要顯示第幾頁
  5. public static $pageNum = 10;//一頁需要顯示幾條數據
  6. public static $pageSum;//共有幾頁數據要顯示
  7. public static $offset;//查詢記錄的偏移量,select中的offest參數
  8. public static $prevPage;//上一頁
  9. public static $nextPage;//下一頁
  10. public static $startPage;//頁碼開始的頁數
  11. public static $endPage;//頁碼結束的頁數
  12. public static $offsetPage;//頁碼的偏移的數量
  13. public static $showPages = 5;//一共顯示的頁碼數
  14. public static $startOmit;//頁碼省略的開始標記
  15. public static $endOmit;//頁碼省略的結束標記
  16. public static $res;//數據庫中表的結果集
  17. public function __construct($res,$page)
  18. {
  19. //獲取數據庫表中所有的結果集
  20. PageList::$res = $res;
  21. //總頁數
  22. PageList::$pageSum = ceil(count(PageList::$res)/PageList::$pageNum);
  23. //獲取當前顯示的是第幾頁
  24. //如果當前頁碼<1,當前頁為第一頁
  25. if($page<1):
  26. $page = 1;
  27. endif;
  28. //如果當前頁>總頁數,當前面為最后一頁
  29. if($page>PageList::$pageSum):
  30. $page = PageList::$pageSum;
  31. endif;
  32. PageList::$page = $page;
  33. //查詢記錄的偏移量,select中的offest參數
  34. PageList::$offset = (PageList::$page-1)*PageList::$pageNum;
  35. //上一頁
  36. $prev = (PageList::$page)-1;
  37. PageList::$prevPage = ($prev<1) ? 1 : $prev;
  38. //下一頁
  39. $next = PageList::$page+1;
  40. PageList::$nextPage = ($next>PageList::$pageSum) ? (PageList::$pageSum) : $next;
  41. //頁碼的偏移量
  42. PageList::$offsetPage = (PageList::$showPages-1)/2;
  43. //頁碼開始和結束頁數,頁碼開始和結束的省略標記
  44. PageList::$startPage = 1;
  45. PageList::$endPage = PageList::$pageSum;
  46. PageList::$startOmit = null;
  47. PageList::$endOmit = null;
  48. //如果(總頁數>顯示的頁碼數量)則 設置開始結束頁碼和開始結束省略標記
  49. if(PageList::$pageSum>PageList::$showPages):
  50. // 如果(當前頁>頁碼偏移量+1) 則 顯示 開始省略標記
  51. if((PageList::$page)>(PageList::$offsetPage+1)):
  52. PageList::$startOmit = '...';
  53. endif;
  54. // 重置開始和結束的頁碼
  55. //如果(當前頁>頁碼偏移量)
  56. if(PageList::$page>PageList::$offsetPage):
  57. //起始頁碼=當前頁-頁碼偏移量
  58. PageList::$startPage = PageList::$page - PageList::$offsetPage;
  59. //結束頁碼=當前面+頁碼偏移量
  60. PageList::$endPage = PageList::$page + PageList::$offsetPage;
  61. //如果(結束頁碼>總頁數),則結束頁碼=總頁數
  62. if(PageList::$endPage>PageList::$pageSum) :
  63. PageList::$endPage = PageList::$pageSum;
  64. endif;
  65. else:
  66. //如果(當前頁<頁碼偏移量),則 起始頁碼=第一頁 結束頁碼=顯示的頁碼數量
  67. PageList::$startPage = 1;
  68. PageList::$endPage = PageList::$showPages;
  69. endif;
  70. // 如果(當前頁 + 偏移量) > 總頁數
  71. if((PageList::$page+PageList::$offsetPage)>(PageList::$pageSum)):
  72. // 原理, 就是向當前頁前面進行借位
  73. //(新的起始頁碼)=現在的起始頁碼-(當前頁+頁碼偏移量-現在的結束頁碼)
  74. PageList::$startPage = PageList::$startPage-(PageList::$page+PageList::$offsetPage-PageList::$endPage);
  75. endif;
  76. // 如果 (顯示頁碼數量<總頁數)&&((當前頁+頁碼偏移量)<總頁數) 顯示結束省略標記
  77. if((PageList::$showPages<PageList::$pageSum)&&((PageList::$page+PageList::$offsetPage)<PageList::$pageSum)):
  78. PageList::$endOmit = '...';
  79. endif;
  80. endif;
  81. }
  82. }
  83. ?>

2.數據分頁前端代碼 select.php

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <link rel="stylesheet" href="css/select.css">
  7. <title>商品查詢頁</title>
  8. </head>
  9. <body>
  10. <div class="show">
  11. <div class="row">
  12. <div>商品編號</div>
  13. <div>商品名稱</div>
  14. <div>商品價格</div>
  15. <div>上架時間</div>
  16. </div>
  17. <?php
  18. require 'autoLoad.php';
  19. use compotents\conn\DBconn;
  20. //連接數據庫,查詢商品表中數據
  21. $conn = new DBconn();
  22. $table = 'tb_goods';//表名
  23. $records = $conn->select($table);//查詢表中所有數據
  24. require 'pageList.php';
  25. $page = $_GET['page'] ?? 1;//設置當前訪問的頁數,默認是第一頁
  26. $pageList = new PageList($records,$page);
  27. $records = $conn->select($table,'*','*',$pageList::$pageNum,$pageList::$offset);//查詢表中當頁數據
  28. foreach($records as $res):
  29. ?>
  30. <div class="row">
  31. <div><?php echo $res['id']; ?></div>
  32. <div><?php echo $res['name']; ?></div>
  33. <div><?php echo $res['price'],'元/',$res['unit']; ?></div>
  34. <div><?php echo $res['sdate']; ?></div>
  35. </div>
  36. <?php
  37. endforeach;
  38. ?>
  39. <!-- 分頁條 -->
  40. <div class="pagelist">
  41. <!-- 上一頁 -->
  42. <a href="<?php echo $_SERVER['PHP_SELF'] . '?page=' . $pageList::$prevPage ?>">上一頁</a>
  43. <?php
  44. $self = $_SERVER['PHP_SELF'];
  45. //開始省略標記
  46. if(isset($pageList::$startOmit)):
  47. echo "<a href='{$self}?page=1'>1</a>";
  48. // 如果起始頁就是第2頁,則不顯示第二頁
  49. if($pageList::$startPage !== 2):
  50. echo "<a href='{$self}?page=2'>2</a>";
  51. endif;
  52. echo '<a href="">...</a>';
  53. endif;
  54. //中間顯示的頁碼數
  55. for ($i = $pageList::$startPage;$i<=$pageList::$endPage;$i++):
  56. if( $i ==$pageList::$page):
  57. echo "<a href='{$self}?page={$i}' class='pageActive'>{$i}</a>";
  58. else:
  59. echo "<a href='{$self}?page={$i}'>{$i}</a>";
  60. endif;
  61. endfor;
  62. //結束省略標記
  63. if(isset($pageList::$endOmit)):
  64. $sumPrev =intval($pageList::$pageSum-1) ;//總頁數的上一面
  65. echo '<a href="">...</a>';
  66. if($pageList::$endPage !== $sumPrev):
  67. echo "<a href='{$self}?page={$sumPrev}'>{$sumPrev}</a>";
  68. endif;
  69. echo "<a href='{$self}?page={$pageList::$pageSum}'>{$pageList::$pageSum}</a>";
  70. endif;
  71. ?>
  72. <!-- 下一頁 -->
  73. <a href="<?php echo $_SERVER['PHP_SELF'] . '?page=' . $pageList::$nextPage ?>">下一頁</a>
  74. <form action="<?php echo $self; ?>" method="GET">
  75. <input type="number" name="page" id="page" value="1">
  76. <button type="submit">GO</button>
  77. </form>
  78. </div>
  79. </div>
  80. </body>
  81. </html>

3.更新操作前端代碼 update.php

  1. <?php
  2. session_start();
  3. if(!(isset($_SESSION['userNc']))):
  4. exit('<script>alert("您還未登錄,請登錄后操作");location.href="session/login.php";</script>');
  5. endif;
  6. ?>
  7. <!DOCTYPE html>
  8. <html lang="en">
  9. <head>
  10. <meta charset="UTF-8">
  11. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  12. <link rel="stylesheet" href="css/select.css">
  13. <title>商品修改頁</title>
  14. </head>
  15. <body>
  16. <div class="show">
  17. <div class="row">
  18. <div>商品編號</div>
  19. <div>商品名稱</div>
  20. <div>價格/單位</div>
  21. <div>上架時間</div>
  22. <div>更新操作</div>
  23. </div>
  24. <?php
  25. require 'autoLoad.php';
  26. use compotents\conn\DBconn;
  27. //連接數據庫,查詢商品表中數據
  28. $conn = new DBconn();
  29. $table = 'tb_goods';//表名
  30. $records = $conn->select($table);//查詢表中所有數據
  31. require 'pageList.php';
  32. $page = $_GET['page'] ?? 1;//設置當前訪問的頁數,默認是第一頁
  33. $pageList = new PageList($records,$page);
  34. $records = $conn->select($table,'*','*',$pageList::$pageNum,$pageList::$offset);//查詢表中當頁數據
  35. foreach($records as $res):
  36. ?>
  37. <div class="row">
  38. <form action="handle.php?action=update&id=<?php echo $res['id']; ?>" method="POST">
  39. <div style="width:100px"><?php echo $res['id']; ?></div>
  40. <input type="text" name="goodsName" id="goodsName" style="width:120px"
  41. value="<?php echo $res['name']; ?>">
  42. <div>
  43. <input type="text" name="goodsPrice" id="goodsPrice" style="width:50px"
  44. value="<?php echo $res['price']; ?>">/
  45. <input type="text" name="goodsUnit" id="goodsUnit" style="width:50px"
  46. value="<?php echo $res['unit']; ?>">
  47. </div>
  48. <input type="date" name="goodSdate" id="goodSdate" style="width:120px"
  49. value="<?php echo $res['sdate']; ?>">
  50. <div style="width:120px"><button type="submit">修改</button></div>
  51. </form>
  52. </div>
  53. <?php
  54. endforeach;
  55. ?>
  56. <!-- 分頁條 -->
  57. <div class="pagelist">
  58. <!-- 上一頁 -->
  59. <a href="<?php echo $_SERVER['PHP_SELF'] . '?page=' . $pageList::$prevPage ?>">上一頁</a>
  60. <?php
  61. $self = $_SERVER['PHP_SELF'];
  62. //開始省略標記
  63. if(isset($pageList::$startOmit)):
  64. echo "<a href='{$self}?page=1'>1</a>";
  65. // 如果起始頁就是第2頁,則不顯示第二頁
  66. if($pageList::$startPage !== 2):
  67. echo "<a href='{$self}?page=2'>2</a>";
  68. endif;
  69. echo '<a href="">...</a>';
  70. endif;
  71. //中間顯示的頁碼數
  72. for ($i = $pageList::$startPage;$i<=$pageList::$endPage;$i++):
  73. if( $i ==$pageList::$page):
  74. echo "<a href='{$self}?page={$i}' class='pageActive'>{$i}</a>";
  75. else:
  76. echo "<a href='{$self}?page={$i}'>{$i}</a>";
  77. endif;
  78. endfor;
  79. //結束省略標記
  80. if(isset($pageList::$endOmit)):
  81. $sumPrev =intval($pageList::$pageSum-1) ;//總頁數的上一面
  82. echo '<a href="">...</a>';
  83. if($pageList::$endPage !== $sumPrev):
  84. echo "<a href='{$self}?page={$sumPrev}'>{$sumPrev}</a>";
  85. endif;
  86. echo "<a href='{$self}?page={$pageList::$pageSum}'>{$pageList::$pageSum}</a>";
  87. endif;
  88. ?>
  89. <!-- 下一頁 -->
  90. <a href="<?php echo $_SERVER['PHP_SELF'] . '?page=' . $pageList::$nextPage ?>">下一頁</a>
  91. <form action="<?php echo $self; ?>" method="GET">
  92. <input type="number" name="page" id="page" value="1">
  93. <button type="submit">GO</button>
  94. </form>
  95. </div>
  96. </div>
  97. </body>
  98. </html>

4.刪除操作前端代碼 delete.php

  1. <?php
  2. session_start();
  3. if(!(isset($_SESSION['userNc']))):
  4. exit('<script>alert("您還未登錄,請登錄后操作");location.href="session/login.php";</script>');
  5. endif;
  6. ?>
  7. <!DOCTYPE html>
  8. <html lang="en">
  9. <head>
  10. <meta charset="UTF-8">
  11. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  12. <link rel="stylesheet" href="css/select.css">
  13. <title>商品刪除頁</title>
  14. </head>
  15. <body>
  16. <div class="show">
  17. <div class="row">
  18. <div>商品編號</div>
  19. <div>商品名稱</div>
  20. <div>商品價格</div>
  21. <div>上架時間</div>
  22. <div>刪除操作</div>
  23. </div>
  24. <?php
  25. require 'autoLoad.php';
  26. use compotents\conn\DBconn;
  27. //連接數據庫,查詢商品表中數據
  28. $conn = new DBconn();
  29. $table = 'tb_goods';//表名
  30. $records = $conn->select($table);//查詢表中所有數據
  31. require 'pageList.php';
  32. $page = $_GET['page'] ?? 1;//設置當前訪問的頁數,默認是第一頁
  33. $pageList = new PageList($records,$page);
  34. $records = $conn->select($table,'*','*',$pageList::$pageNum,$pageList::$offset);//查詢表中當頁數據
  35. foreach($records as $res):
  36. ?>
  37. <div class="row">
  38. <div><?php echo $res['id']; ?></div>
  39. <div><?php echo $res['name']; ?></div>
  40. <div><?php echo $res['price'],'元/',$res['unit']; ?></div>
  41. <div><?php echo $res['sdate']; ?></div>
  42. <div><a href="handle.php?action=delete&id=<?php echo $res['id']; ?>">刪除</a></div>
  43. </div>
  44. <?php
  45. endforeach;
  46. ?>
  47. <!-- 分頁條 -->
  48. <div class="pagelist">
  49. <!-- 上一頁 -->
  50. <a href="<?php echo $_SERVER['PHP_SELF'] . '?page=' . $pageList::$prevPage ?>">上一頁</a>
  51. <?php
  52. $self = $_SERVER['PHP_SELF'];
  53. //開始省略標記
  54. if(isset($pageList::$startOmit)):
  55. echo "<a href='{$self}?page=1'>1</a>";
  56. // 如果起始頁就是第2頁,則不顯示第二頁
  57. if($pageList::$startPage !== 2):
  58. echo "<a href='{$self}?page=2'>2</a>";
  59. endif;
  60. echo '<a href="">...</a>';
  61. endif;
  62. //中間顯示的頁碼數
  63. for ($i = $pageList::$startPage;$i<=$pageList::$endPage;$i++):
  64. if( $i ==$pageList::$page):
  65. echo "<a href='{$self}?page={$i}' class='pageActive'>{$i}</a>";
  66. else:
  67. echo "<a href='{$self}?page={$i}'>{$i}</a>";
  68. endif;
  69. endfor;
  70. //結束省略標記
  71. if(isset($pageList::$endOmit)):
  72. $sumPrev =intval($pageList::$pageSum-1) ;//總頁數的上一面
  73. echo '<a href="">...</a>';
  74. if($pageList::$endPage !== $sumPrev):
  75. echo "<a href='{$self}?page={$sumPrev}'>{$sumPrev}</a>";
  76. endif;
  77. echo "<a href='{$self}?page={$pageList::$pageSum}'>{$pageList::$pageSum}</a>";
  78. endif;
  79. ?>
  80. <!-- 下一頁 -->
  81. <a href="<?php echo $_SERVER['PHP_SELF'] . '?page=' . $pageList::$nextPage ?>">下一頁</a>
  82. <form action="<?php echo $self; ?>" method="GET">
  83. <input type="number" name="page" id="page" value="1">
  84. <button type="submit">GO</button>
  85. </form>
  86. </div>
  87. </div>
  88. </body>
  89. </html>

5.CURD綜合處理代碼 handle.php

  1. <?php
  2. require 'autoLoad.php';
  3. use compotents\conn\DBconn;
  4. $user =new DBconn();
  5. $table = 'tb_goods';//表名
  6. $where =''; //判斷的條件
  7. $data =[];//添加或者更新的數據
  8. $action = $_GET['action'];
  9. switch ($action)
  10. {
  11. case 'insert':
  12. $name = $_POST['goodsName'];
  13. $price = $_POST['goodsPrice'];
  14. $unit = $_POST['goodsUnit'];
  15. $date = $_POST['goodsSdate'];
  16. $data = ['name'=>"$name",'price'=>"$price",'unit'=>"$unit",'sdate'=>"$date"];
  17. $user->insert($table,$data);
  18. break;
  19. case 'update':
  20. $id = $_GET['id'];
  21. $name = $_POST['goodsName'];
  22. $price = $_POST['goodsPrice'];
  23. $unit = $_POST['goodsUnit'];
  24. $sdate = $_POST['goodSdate'];
  25. $where = "`id`=$id";
  26. $data = ['name'=>"$name",'price'=>"$price",'unit'=>"$unit",'sdate'=>"$sdate"];
  27. $user->update($table,$data,$where);
  28. break;
  29. case 'delete':
  30. $id = $_GET['id'];
  31. $where = "`id`=$id";
  32. $user->delete($table,$where);
  33. break;
  34. default:
  35. echo '不支持此操作';
  36. }
  37. ?>
批改老師:天蓬老師天蓬老師

批改狀態(tài):合格

老師批語:同在這個小后臺看上去像點樣了, 不是嗎?
本博文版權歸博主所有,轉載請注明地址!如有侵權、違法,請聯系admin@php.cn舉報處理!
全部評論 文明上網理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
作者最新博文
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網:公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網訂閱號
每天精選資源文章推送
PHP中文網APP
隨時隨地碎片化學習
PHP中文網抖音號
發(fā)現有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網,和優(yōu)秀的人一起學習!
    全站2000+教程免費學