中学+inur+php+id,linux运维架构--PHP开发-零基础学习PHP视频教程

本文介绍了一个简单的PHP分页类的实现,该类用于处理数据分页,包括首页、上一页、下一页、尾页的链接生成以及当前页码范围的显示。在页面展示部分,给出了相应的CSS样式以美化分页效果。通过实例展示了如何使用PDO连接数据库,获取数据总数,并利用分页类进行分页显示。
摘要由CSDN通过智能技术生成

一个还算是比较简单实用美观大方的分页类

首先是分页类 page.php<?php

class Page{

private $cur;

private $showPages = 2;

private $pageIndex;

private $pageEnd;

private $total;

private $size;

public function __construct($cur,$total,$size){

$this->cur=$cur;

$this->total=$total;

$this->size = $size;

$this->pageCount = ceil($total/$size);

$this->setIndexEnd();

}

private function setIndexEnd(){

$this->pageIndex = $this->cur-$this->showPages;

$this->pageEnd = $this->cur+$this->showPages;

//0             pageend    +1

//-1            pageend   +2

if($this->pageIndex<=0){

$this->pageEnd = $this->pageEnd+(1-$this->pageIndex);

$this->pageIndex=1;

}

//14   13   -1

//15  12    -2

if($this->pageCount>($this->showPages*2+1)){

if($this->pageEnd>$this->pageCount){

$this->pageIndex = $this->pageIndex-($this->pageEnd-$this->pageCount);

$this->pageEnd = $this->pageCount;

}

}else{

if($this->pageEnd>$this->pageCount){

$this->pageEnd = $this->pageCount;

}

}

}

public function showPage(){

if($this->total>$this->size){

$str ="

";

$str.=$this->pageHome();

$str.=$this->prePage();

$str.=$this->midPage();

$str.=$this->nextPage();

$str.=$this->pageLast();

$str.=$this->countTotal();

$str.='

';

}else{

$str=null;

}

return $str;

}

private function pageHome(){

if($this->cur==1){

$str = '

首页

';

}else{

$str = '首页';

}

return $str;

}

private function prePage(){

if($this->cur==1){

$str = '

上一页

';

}else{

$str = 'cur-1).'>上一页';

}

return $str;

}

private function midPage(){

$str = '';

if($this->pageIndex!=1){

$str.='

...

';

}

for($i=$this->pageIndex;$i<=$this->pageEnd;$i++){

if($i==$this->cur){

$str.="$i";

}else{

$str.="$i";

}

}

if($this->pageEnd!=$this->pageCount){

$str.='

...

';

}

return $str;

}

private function nextPage(){

if($this->cur==$this->pageCount){

$str = '

下一页

';

}else{

$str = 'cur+1).'>下一页';

}

return $str;

}

private function pageLast(){

if($this->cur==$this->pageCount){

$str = '

尾页

';

}else{

$str = 'pageCount.'>尾页';

}

return $str;

}

//统计

private function countTotal(){

return '

'.$this->pageCount.''.$this->total.'条数据

';

}

}

分页类的使用以及展示<?php

require_once 'page.php';

try{

$db = new PDO('mysql:host=127.0.0.1;dbname=lampol;port=3306;charset=utf8','root','123456');

$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

}catch(PDOException $e){

echo 'connect Mysql Error:'.$e->getMessage();

}

$cur = $_GET['page'];

$size =2;

$sql = 'SELECT user_name,password FROM `user`';

$stmt = $db->prepare($sql);

$stmt->execute();

$total=$stmt->rowCount();//总的条数

// 0  8

// 8 ,8

//16, 8

$sql.='LIMIT '. ($cur-1)*$size.','.$size;

$stmt = $db->prepare($sql);

$stmt->execute();

$res = $stmt->fetchAll();

?>

html>

分页类

p{margin:0}

#page{height:40px;padding:20px 0px;}

#page a{display:block;float:left;margin-right:10px;padding:2px 12px;height:24px;border:1px #cccccc solid;background:#fff;text-decoration:none;color:#808080;font-size:12px;line-height:24px;}

#page a:hover{color:#077ee3; border:1px #077ee3 solid;}

#page a.cur{border:none;background:#43badb;color:#fff;}

#page p{float:left;padding:2px 12px;font-size:12px;height:24px;line-height:24px;color:#bbb;border:1px #ccc solid;background:#fcfcfc;margin-right:8px;}

#page p.pageRemark{border-style:none;background:none;margin-right:0px;padding:4px 0px;color:#666;}

#page p.pageRemark b{color:red;}

#page p.pageEllipsis{border-style:none;background:none;padding:4px 0px;color:#808080;}

//开始调用分页类

$page = new Page($cur,$total,$size);

echo $page->showPage();

?>

下面是效果图

1529749167990963.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值