
批改狀態(tài):合格
老師批語:
獲取數(shù)據(jù),并預(yù)處理
// 獲取頁碼 $_GET
$page = $_GET['p'] ?? 1;
// 越界檢測
$page = $page < 1 ? 1 : $page;
// 每頁顯示條數(shù)
$pageSize = 10;
// $pageSize = $_GET['pageSize'];
// 偏移量
$offset = ($page - 1) * $pageSize;
$db = new PDO('mysql:dbname=laravel', 'root', 'root');
$stmt = $db->prepare('select * from cates limit ?,? ');
$stmt->bindParam(1, $offset, PDO::PARAM_INT);//參數(shù)序號,參數(shù)值,參數(shù)類型
$stmt->bindParam(2, $pageSize, PDO::PARAM_INT);
$stmt->execute();
$lists = $stmt->fetchAll(PDO::FETCH_ASSOC);
// var_dump($lists);
// 計算總記錄數(shù)
$sql = 'SELECT COUNT(id) AS TOTAL FROM cates';
$stmt = $db->prepare($sql);
$stmt->execute();
// print_r($stmt->fetch(PDO::FETCH_ASSOC));
$total = $stmt->fetch(PDO::FETCH_ASSOC)['TOTAL'];
// 總頁數(shù)= 數(shù)據(jù)表的總行數(shù)/每頁顯示條數(shù)
$pages = ceil($total / $pageSize);//向上取整
網(wǎng)頁展示:
<?php foreach ($lists as $list) : extract($list) ?>
<tr>
<td><?= $id ?></td>
<td><?= $name ?></td>
<td><?= $status == 1 ? '正常' : '禁用' ?></td>
<td><?= date('Y-m-d H:i:s', $create_time) ?></td>
<td><?= $update_time ?></td>
<td><button>刪除</button><button>編輯 </button></td>
</tr>
<?php endforeach ?>
添加分頁符:
<?php
$prev = $page - 1;
if ($page == 1) $prev = 1;
if ($page != 1) :
?>
<a href="?p=<?= $prev ?>">上一頁</a>
<?php endif;
//動態(tài)生成分頁
for ($i = 1; $i <= $pages; $i++) :
$active = ($page == $i) ? 'active' : null;
?>
<a class="<?= $active ?>" href="?p=<?= $i ?>"><?= $i ?></a>
<?php endfor ?>
<?php
$next = $page + 1;
if ($next == $pages) $next = $pages;
if ($page != $pages) : ?>
<a href="">下一頁</a>
<?php endif ?>
安裝Redis,并從數(shù)據(jù)庫獲取數(shù)據(jù):
if (extension_loaded('redis')) {
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
$lists = (new PDO('mysql:dbname=laravel', 'root', 'root'))->query('select * from cates')->fetchAll(PDO::FETCH_ASSOC);
$lists = json_encode(getTree($lists), 320);
$redis->set('cates', $lists);
}
Redis數(shù)據(jù)分類:
function getTree($list, $pid = 0, $level = 0)
{
static $tree = [];
foreach ($list as $row) {
if ($row['pid'] == $pid) {
$row['level'] = $level;
$tree[] = $row;
getTree($list, $row['id'], $level++);
}
}
return $tree;
}
從Redis獲取數(shù)據(jù)并預(yù)處理:
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
$lists = json_decode($redis->get('cates'), true);
$page = $_GET['p'] ?? 1;
$page = $page < 1 ? 1 : $page;
$pageSize = 20;
$offset = ($page - 1) * $pageSize;
$pages = ceil(count($lists) / $pageSize);
$lists = array_splice($lists, $offset, $pageSize);
數(shù)據(jù)網(wǎng)頁展示:
<?php foreach ($lists as $list) : extract($list) ?>
<tr>
<td><?= $id ?></td>
<td style="padding-left:<?= $level ?>cm">|<?= $name ?></td>
<td><?= $status == 1 ? '正常' : '禁用' ?></td>
<td><?= date('Y-m-d H:i:s', $create_time) ?></td>
<td><?= $update_time ?></td>
<td><button>刪除</button><button>編輯 </button></td>
</tr>
<?php endforeach ?>
分頁符:
<?php
$prev = $page - 1;
if ($page == 1) $prev = 1;
if ($page != 1) :
?>
<a href="?p=<?= $prev ?>">上一頁</a>
<?php endif;
//動態(tài)生成分頁
for ($i = 1; $i <= $pages; $i++) :
$active = ($page == $i) ? 'active' : null;
?>
<a class="<?= $active ?>" href="?p=<?= $i ?>"><?= $i ?></a>
<?php endfor ?>
<?php
$next = $page + 1;
if ($next == $pages) $next = $pages;
if ($page != $pages) : ?>
<a href="">下一頁</a>
<?php endif ?>
這節(jié)課內(nèi)容比較多,剛捋完一遍,Redis挺有用,還沒來得及優(yōu)化。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號