smarty分页类

<?php 
header("Content-Type:text/html;charset=utf8");
// 判断页数
if(isset($_GET["page"])){
	$page=$_GET["page"];
}else{
	$page=1;
}      
//数据库连接类
class ConnDB{
	var $dbtype;
	var $host;
    var $user;
    var $pwd;
    var $dbname;
   
	//构造方法
    function ConnDB($dbtype,$host,$user,$pwd,$dbname){
		$this->dbtype=$dbtype;
    	$this->host=$host;
		$this->user=$user;
		$this->pwd=$pwd;
		$this->dbname=$dbname;
	}
    //实现数据库的连接并返回连接对象
    function GetConnId(){
     	
    	if($this->dbtype=="mysql" || $this->dbtype=="mssql"){
    		$dsn="$this->dbtype:host=$this->host;dbname=$this->dbname";
		}else{
			$dsn="$this->dbtype:dbname=$this->dbname";
		}    
		try {
    		$conn = new PDO($dsn, $this->user, $this->pwd); 	//初始化一个PDO对象,就是创建了数据库连接对象$pdo
			$conn->query("set names utf8");
    		return $conn;
		} catch (PDOException $e) {
    		die ("Error!: " . $e->getMessage() . "<br/>");
		}     	
    }	
}
//数据库管理类
class AdminDB{		
	function ExecSQL($sqlstr,$conn){		
		$sqltype=strtolower(substr(trim($sqlstr),0,6));
		$rs=$conn->prepare($sqlstr);		//准备查询语句
		$rs->execute();					//执行查询语句,并返回结果集
		if($sqltype=="select"){
			$array=$rs->fetchAll(PDO::FETCH_ASSOC);		//获取结果集中的所有数据
			if(count($array)==0 || $rs==false)
				return false;
			else
				return $array;
		}elseif ($sqltype=="update" || $sqltype=="insert" || $sqltype=="delete"){			
			if($rs)
			    return true;
			else 
			    return false;    
		}
	}
}
//分页类
class SepPage{
	var $rs;
	var $pagesize;
	var $nowpage;
	var $array;
	var $conn;
	var $sqlstr;
	function ShowData($sqlstr,$conn,$pagesize,$nowpage){	//定义方法
		if(!isset($nowpage) || $nowpage=="")			//判断变量值是否为空
			$this->nowpage=1;						//定义每页起始页
		else
			$this->nowpage=$nowpage;
		$this->pagesize=$pagesize;					//定义每页输出的记录数
		$this->conn=$conn;							//连接数据库返回的标识
		$this->sqlstr=$sqlstr;							//执行的查询语句
		$offset=($this->nowpage-1)*$this->pagesize;
		$sql=$this->sqlstr." limit $offset, $this->pagesize";
		$result=$this->conn->prepare($sql);			//准备查询语句
		$result->execute();						//执行查询语句,并返回结果集
		$this->array=$result->fetchAll(PDO::FETCH_ASSOC);		//获取结果集中的所有数据
		if(count($this->array)==0 || $this->array==false)
			return false;
		else
			return $this->array;
	}	
	function ShowPage($contentname,$utits,$anothersearchstr,$anothersearchstrs,$class){
		$str="";
		$res=$this->conn->prepare($this->sqlstr);			//准备查询语句
		$res->execute();						//执行查询语句,并返回结果集
		$this->array=$res->fetchAll(PDO::FETCH_ASSOC);		//获取结果集中的所有数据
		$record=count($this->array);				//统计记录总数

		$pagecount=ceil($record/$this->pagesize);		//计算共有几页
		$str.=$contentname." ".$record." ".$utits." 每页 ".$this->pagesize." ".$utits." 第 ".$this->nowpage." 页/共 ".$pagecount." 页";
		$str.="    ";
		if($this->nowpage!=1)
		  $str.="<a href=".$_SERVER['PHP_SELF']."?page=1&page_type=".$anothersearchstr."&parameter2=".$anothersearchstrs." class=".$class.">首页</a>";
		else
		  $str.="<font color='#555555'>首页</font>";
		$str.=" ";
		if($this->nowpage!=1)
		  $str.="<a href=".$_SERVER['PHP_SELF']."?page=".($this->nowpage-1)."&page_type=".$anothersearchstr."&parameter2=".$anothersearchstrs." class=".$class.">上一页</a>";
		else
		  $str.="<font color='#555555'>上一页</font>";
		$str.=" ";	
		if($this->nowpage!=$pagecount)
		  $str.="<a href=".$_SERVER['PHP_SELF']."?page=".($this->nowpage+1)."&page_type=".$anothersearchstr."&parameter2=".$anothersearchstrs." class=".$class.">下一页</a>";
		else
		  $str.="<font color='#555555'>下一页</font>";	
		$str.=" ";
		if($this->nowpage!=$pagecount)
		  $str.="<a href=".$_SERVER['PHP_SELF']."?page=".$pagecount."&page_type=".$anothersearchstr."&parameter2=".$anothersearchstrs." class=".$class.">尾页</a>";
		else
		  $str.="<font color='#555555'>尾页</font>";
		if(count($this->array)==0 || $this->array==false)			
		  return "无数据!";
		else
		    return $str;	
	}
}
$connobj=new ConnDB("mysql","localhost","root","","db_pagination");//数据库连接类实例化
$conn=$connobj->GetConnId();//执行连接操作,返回连接标识
$admindb=new AdminDB();//数据库操作类实例化
$seppage=new SepPage();//分页类实例化
$arraybbs=$seppage->ShowData("select * from tb_mr_book",$conn,1,$page);//调用分页类,实现分页功能
// $smarty->assign("showpage",$seppage->ShowPage("","","","","")); //定义输出分页数据的模板变量showpage
var_dump($arraybbs);

 定义使用smarty分页类;

第一页localhost/test.php?page=1

第二页localhost/test.php?page=2

。。。

原文地址:https://www.cnblogs.com/aten/p/8954699.html