thinkphp实现根据页码从数据中获取数据,并实现分页

来源:互联网 发布:23号端口 编辑:程序博客网 时间:2024/06/15 04:33

发现thinkphp框架中自带分页类Page.class.php




使用也很简单,在控制器中实例化page类,并且调用它的方法,在HTML直接输出变量$pagelist就可以了。




下面附上我自己写的分页代码

一、前端代码

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><style>.show_page a{height:32px;width:30px;border:1px solid #DCDCDC;background-color:#F3F2F2;text-decoration:none;text-align:center;cursor:pointer;border-collapse:collapse;font-size:14px;}span{height:32px;width:30px;border:1px solid #DCDCDC;background-color:#F3F2F2;text-align:center;border-collapse:collapse;}span.current,.show_page a:hover{border:1px solid #F3F2F2;background-color:#FFFFFF;}.disable{border:#eee 1px solid;color:#ddd;}</style></head><body>{$page_banner}</body></html>



二、后端代码

//传入页码public function forPage(){$page = I('get.page',1);//初始值为1$allMessages= D('Message')->getAll(0,$page);$allMessages = $this->change($allMessages);$number = D("message")->getcount();$number = ceil($number['number']/1);//向上取整$show_page = 3;//显示页码数$page_offset = ($show_page-1)/2;$page_banner = "<div class='show_page'>";if($page>1){$page_banner .=" <a href='".$_SERVER['PHP_SELF']."?page=".($page-1)."'><</a>";}else{$page_banner .= "<span class='disable'><</span>";}$start = 1;$end = $number;if($number > $show_page){//头部if($page > $page_offset+1){$page_banner .="<span class='disable'>...</span>";}if($page > $page_offset){$start = $page-$page_offset;$end = $number>$page+$page_offset?$page+$page_offset:$number;}else{$start = 1;$end = $number>$show_page?$show_page:$number;}//尾部省略if($page+$page_offset > $number){$start = $start-($page+$page_offset-$end);}}for($i=$start;$i<=$end;$i++){if($i == $page){$page_banner .= "<span class='current'>{$i}</span>";}else{$page_banner .= "<a href='".$_SERVER['PHP_SELF']."?page=".($i)."'>{$i}</a>";}}if($show_page<$number && $page<$number-$page_offset){$page_banner .= "<span class='disable'>...</span>";}if($page < $number){$page_banner .="<a href='".$_SERVER['PHP_SELF']."?page=".($page+1)."'>></a>";}else{$page_banner .= "<span class='disable'>></span>";}$this->assign('number',$number);//总页数$this->assign('page',$page);//当前页$this->assign('page_banner',$page_banner);$this->display();}

三、sql语言

//获取留言(按时间先后顺序排列)public function getAll($page){$where["comment_id"] = 0;//查找所有comment_id为0的数据$allMessages = $this->relation('user')->where($where)->order('time desc')->page("$page,6")->select();if(empty($allMessages)){return array();}return $allMessages;}


0 0
原创粉丝点击