totalRows = $totalRows ? $totalRows : 1;
$this->pageSize = $pageSize;
$this->totalPageNum = ceil($this->totalRows / $this->pageSize);
$this->currentPageNum = $this->getCurrentPage();
$this->url = $this->getUrl();
$this->limit = $this->getLimit();
}
public function show(){
echo $this->first();
echo $this->prev();
echo $this->pageList();
echo $this->next();
echo $this->last();
// echo '
';
// echo $page->limit;
}
/*
1 当前页不存在 1
2 当前页存在 但大于总页数 取总页数
3 当前页存在 在1~总页数之间 去当前页
*/
private function getCurrentPage(){
if (!empty($_GET['page'])) {
if ($_GET['page'] > 0) {
if ($_GET['page'] > $this->totalPageNum) {
return $this->totalPageNum;
} else {
return $_GET['page'];
}
} else {
return 1;
}
} else {
return 1;
}
}
//获取当前url并解析参数去掉page参数 确定page前是? or &
private function getUrl(){
// echo '';
// print_r($_SERVER);
// echo '
';exit;
$url = $_SERVER['REQUEST_URI'];
$urlDetail = parse_url($url);
// echo '';
// print_r($urlDetail);
// echo '
';exit;
if(isset($urlDetail['query'])){
parse_str($urlDetail['query'],$params);
unset($params['page']);
if(count($params) > 0) {
$url = $urlDetail['path'].'?'.http_build_query($params);
$this->sign = '&';
} else {
$url = $urlDetail['path'];
$this->sign = '?';
}
}
return $url;
}
private function getLimit(){
if ($this->currentPageNum == $this->totalPageNum) {
return 'LIMIT '.($this->currentPageNum - 1) * $this->pageSize . ', '.($this->totalRows - ($this->currentPageNum - 1) * $this->pageSize);
} else {
return 'LIMIT '.($this->currentPageNum - 1) * $this->pageSize . ', '. $this->pageSize;
}
}
/*
页码表 默认当前页前后各4个可点的页面
首页 上一页... 1234 5 6789 ...下一页 尾页
*/
private function pageList(){
$pageList = '';
if ($this->currentPageNum - $this->bothNum > 1) {
$pageList .= ' ... ';
}
//当前页前边的部分
for($i = $this->bothNum;$i>0;$i--) {
$_page = $this->currentPageNum - $i;
if ($_page < 1 ) continue;
$pageList .= ' '.$_page.' ';
}
//当前页
$pageList .= ' ' . $this->currentPageNum . ' ';
//当前页之后的部分
for ($i=1;$i<=$this->bothNum;$i++){
$_page = $this->currentPageNum + $i;
if ($_page > $this->totalPageNum) continue;
$pageList .=' '.$_page.' ';
}
if ($this->currentPageNum + $this->bothNum < $this->totalPageNum) {
$pageList .= ' ... ';
}
return $pageList;
}
//首页
private function first(){
if ($this->currentPageNum > 1) {
return '首页';
}
}
//尾页
private function last(){
if ($this->currentPageNum < $this->totalPageNum) {
return '尾页';
}
}
//上一页
private function prev(){
if($this->currentPageNum > 1) {
return ' 上一页 ';
}
}
//下一页
private function next(){
if($this->currentPageNum < $this->totalPageNum) {
return ' 下一页 ';
}
}
}
使用该分页类:
limit;
$res =mysqli_query($link,$sql);
while($row = mysqli_fetch_assoc($res)) {
echo '-----'.$row['id'].'-----'.$row['name'].'-----
';
}
// echo $page->getUrl();
// echo $page->first();
// echo $page->prev();
// echo $page->pageList();
// echo $page->next();
// echo $page->last();
// echo '
';
// echo $page->limit;
// insert into user (name) values ('茹雪'),('正梅'),('美琳'),('欢馨'),('优璇'),('雨嘉'),('娅楠'),('明美'),('可馨'),('惠茜'),('漫妮'),('香茹'),('月婵'),('嫦曦'),('静香'),('梦洁'),('凌薇'),('美莲'),('雅静'),('雪丽'),('依娜'),('雅芙'),('雨婷'),('语嫣'),('桑榆'),('曼玉'),('歆瑶'),('凌菲'),('靖瑶'),('瑾萱'),('佑怡'),('婳祎'),('檀雅'),('若翾'),('熙雯'),('诗茵'),('静璇'),('婕珍'),('沐卉'),('琪涵'),('佳琦'),('昭雪'),('倩雪'),('梦琪'),('忆柳'),('之桃'),('慕青'),('问兰'),('尔岚'),('元香'),('初夏'),('沛菡'),('傲珊'),('曼文'),('乐菱'),('痴珊'),('惜文'),('香寒'),('新柔'),('语蓉'),('海安'),('夜蓉'),('涵柏'),('水桃'),('语琴');
$page->show();