提示:仅供参考
page.class.php
<meta charset="utf8">
<style>
a {
display:inline-block;
border:1px solid #ccc;
text-decoration:none;
padding:5px;
margin:20px 3px;
color:#333;
}
.apage{
background:#ccc;
}
.disable{
border:1px solid #ccc;
color:#ccc;
}
</style>
<?php
require "mysql.class.php";
class page {
private $total;
private $number=10;
private $pagecount;
public $limit;
private $url;
private $page;
function __construct($total,$number,$url) {
$this->total=$total;
$this->number=$number;
$this->pagecount=ceil($this->total/$this->number);
$this->getpage();
$this->url=$url;
$this->limit="limit ".$this->setlimit();
}
private function getpage(){
$this->page=(isset($_GET['page'])&&!empty($_GET['page']))?$_GET['page']:1;
if(preg_match('/\D/',$this->page)){
$this->page=1;
}
if($this->page<=0){
$this->page=1;
}
if($this->page > $this->pagecount){
$this->page=$this->pagecount;
}
}
private function setlimit(){
$start=($this->page-1)*$this->number;
return ($start.','.$this->number);
}
private function setnumber($num){
$str="";
if($this->pagecount<=$num){
for($i=1;$i<=$this->pagecount;$i++){
if($this->page==$i){
$str.= "<a href='".$this->url."?page=".$i."' class='apage'>".$i."</a>";
}else{
$str.= "<a href='".$this->url."?page=".$i."'>".$i."</a>";
//echo "<a href='demo1.php?page=".$i ."&number=".$number."'>".$i."</a>";
}
}
}else{
if($this->page<=ceil($num/2)){
for($i=1;$i<=$num;$i++){
//给当前页加一个灰色的背景
if($this->page==$i){
$str.= "<a href='".$this->url."?page=".$i."' class='apage'>".$i."</a>";
}else{
$str.= "<a href='".$this->url."?page=".$i."'>".$i."</a>";
}
}
}elseif($this->page>=$this->pagecount-floor($num/2)){
//当前页在后3页时,能实现的效果是,点击后三页的时候,分页不会动
for($i=$this->pagecount-$num-1;$i<=$this->pagecount;$i++){
//给当前页加一个灰色的背景
if($this->page==$i){
$str.= "<a href='".$this->url."?page=".$i."' class='apage'>".$i."</a>";
}else{
$str.= "<a href='".$this->url."?page=".$i."'>".$i."</a>";
}
}
}else{
//将当前页放在中间页数时
for($i=$this->page-floor($num/2);$i<=$this->page+floor($num/2);$i++){
if($this->page==$i){
$str.= "<a href='".$this->url."?page=".$i."' class='apage'>".$i."</a>";
}else{
$str.= "<a href='".$this->url."?page=".$i."'>".$i."</a>";
}
}
}
}
return $str;
}
public function fpage($number=false,$num=5){
$str="";
if($this->page==1){
$str.="<a href='javascript:void(0);' class='disable'>首页</a>";
$str.="<a href='javascript:void(0);' class='disable'>上一页</a>";
}else{
$str.="<a href='".$this->url."?page=1'>首页</a>";
$str.="<a href='".$this->url."?page=".($this->page-1)."'>上一页</a>";
}
if($number){
$str.=$this->setnumber($num);
}
if($this->page==$this->pagecount){
$str.="<a href='javascript:void(0);' class='disable'>下一页</a>";
$str.="<a href='javascript:void(0);' class='disable'>尾页</a>";
}else{
$str.="<a href='".$this->url."?page=".($this->page+1)."'>下一页</a>";
$str.="<a href='".$this->url."?page=".$this->pagecount."'>尾页</a>";
}
return $str;
}
}
2.显示出来
<?php
include "libs/Smarty.class.php";
include "page.class.php";
$smarty=new Smarty();
//include "mysql.class.php";
//连接数据库
$mysql=new Mysql('127.0.0.1','root','root','1408phpe');
//查询总条数
$total=$mysql->counts("select * from exam8 ");
//$sql="select * from exam8 ";
$page=new page($total,2,'show1.php');
$sql="select * from exam8 $page->limit";
$a=$mysql->select_all($sql);
$smarty->assign('arr',$a);
$smarty->display('show1.tpl');
echo"<p align='left'>".$page->fpage(true)."</p>";