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

搜索
博主信息
博文 38
粉絲 0
評論 0
訪問量 30807
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
動態(tài)分頁與redis靜態(tài)分頁
一個好人
原創(chuàng)
1059人瀏覽過

動態(tài)分頁

獲取數(shù)據(jù),并預(yù)處理

  1. // 獲取頁碼 $_GET
  2. $page = $_GET['p'] ?? 1;
  3. // 越界檢測
  4. $page = $page < 1 ? 1 : $page;
  5. // 每頁顯示條數(shù)
  6. $pageSize = 10;
  7. // $pageSize = $_GET['pageSize'];
  8. // 偏移量
  9. $offset = ($page - 1) * $pageSize;
  10. $db = new PDO('mysql:dbname=laravel', 'root', 'root');
  11. $stmt = $db->prepare('select * from cates limit ?,? ');
  12. $stmt->bindParam(1, $offset, PDO::PARAM_INT);//參數(shù)序號,參數(shù)值,參數(shù)類型
  13. $stmt->bindParam(2, $pageSize, PDO::PARAM_INT);
  14. $stmt->execute();
  15. $lists = $stmt->fetchAll(PDO::FETCH_ASSOC);
  16. // var_dump($lists);
  17. // 計算總記錄數(shù)
  18. $sql = 'SELECT COUNT(id) AS TOTAL FROM cates';
  19. $stmt = $db->prepare($sql);
  20. $stmt->execute();
  21. // print_r($stmt->fetch(PDO::FETCH_ASSOC));
  22. $total = $stmt->fetch(PDO::FETCH_ASSOC)['TOTAL'];
  23. // 總頁數(shù)= 數(shù)據(jù)表的總行數(shù)/每頁顯示條數(shù)
  24. $pages = ceil($total / $pageSize);//向上取整

網(wǎng)頁展示:

  1. <?php foreach ($lists as $list) : extract($list) ?>
  2. <tr>
  3. <td><?= $id ?></td>
  4. <td><?= $name ?></td>
  5. <td><?= $status == 1 ? '正常' : '禁用' ?></td>
  6. <td><?= date('Y-m-d H:i:s', $create_time) ?></td>
  7. <td><?= $update_time ?></td>
  8. <td><button>刪除</button><button>編輯 </button></td>
  9. </tr>
  10. <?php endforeach ?>

添加分頁符:

  1. <?php
  2. $prev = $page - 1;
  3. if ($page == 1) $prev = 1;
  4. if ($page != 1) :
  5. ?>
  6. <a href="?p=<?= $prev ?>">上一頁</a>
  7. <?php endif;
  8. //動態(tài)生成分頁
  9. for ($i = 1; $i <= $pages; $i++) :
  10. $active = ($page == $i) ? 'active' : null;
  11. ?>
  12. <a class="<?= $active ?>" href="?p=<?= $i ?>"><?= $i ?></a>
  13. <?php endfor ?>
  14. <?php
  15. $next = $page + 1;
  16. if ($next == $pages) $next = $pages;
  17. if ($page != $pages) : ?>
  18. <a href="">下一頁</a>
  19. <?php endif ?>

redis靜態(tài)分頁

安裝Redis,并從數(shù)據(jù)庫獲取數(shù)據(jù):

  1. if (extension_loaded('redis')) {
  2. $redis = new Redis();
  3. $redis->connect('127.0.0.1', '6379');
  4. $lists = (new PDO('mysql:dbname=laravel', 'root', 'root'))->query('select * from cates')->fetchAll(PDO::FETCH_ASSOC);
  5. $lists = json_encode(getTree($lists), 320);
  6. $redis->set('cates', $lists);
  7. }

Redis數(shù)據(jù)分類:

  1. function getTree($list, $pid = 0, $level = 0)
  2. {
  3. static $tree = [];
  4. foreach ($list as $row) {
  5. if ($row['pid'] == $pid) {
  6. $row['level'] = $level;
  7. $tree[] = $row;
  8. getTree($list, $row['id'], $level++);
  9. }
  10. }
  11. return $tree;
  12. }

從Redis獲取數(shù)據(jù)并預(yù)處理:

  1. $redis = new Redis();
  2. $redis->connect('127.0.0.1', '6379');
  3. $lists = json_decode($redis->get('cates'), true);
  4. $page = $_GET['p'] ?? 1;
  5. $page = $page < 1 ? 1 : $page;
  6. $pageSize = 20;
  7. $offset = ($page - 1) * $pageSize;
  8. $pages = ceil(count($lists) / $pageSize);
  9. $lists = array_splice($lists, $offset, $pageSize);

數(shù)據(jù)網(wǎng)頁展示:

  1. <?php foreach ($lists as $list) : extract($list) ?>
  2. <tr>
  3. <td><?= $id ?></td>
  4. <td style="padding-left:<?= $level ?>cm">|<?= $name ?></td>
  5. <td><?= $status == 1 ? '正常' : '禁用' ?></td>
  6. <td><?= date('Y-m-d H:i:s', $create_time) ?></td>
  7. <td><?= $update_time ?></td>
  8. <td><button>刪除</button><button>編輯 </button></td>
  9. </tr>
  10. <?php endforeach ?>

分頁符:

  1. <?php
  2. $prev = $page - 1;
  3. if ($page == 1) $prev = 1;
  4. if ($page != 1) :
  5. ?>
  6. <a href="?p=<?= $prev ?>">上一頁</a>
  7. <?php endif;
  8. //動態(tài)生成分頁
  9. for ($i = 1; $i <= $pages; $i++) :
  10. $active = ($page == $i) ? 'active' : null;
  11. ?>
  12. <a class="<?= $active ?>" href="?p=<?= $i ?>"><?= $i ?></a>
  13. <?php endfor ?>
  14. <?php
  15. $next = $page + 1;
  16. if ($next == $pages) $next = $pages;
  17. if ($page != $pages) : ?>
  18. <a href="">下一頁</a>
  19. <?php endif ?>

總結(jié):

這節(jié)課內(nèi)容比較多,剛捋完一遍,Redis挺有用,還沒來得及優(yōu)化。

批改老師:PHPzPHPz

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

老師批語:
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

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

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學(xué)習(xí)!
    全站2000+教程免費(fèi)學(xué)