• 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

    。。。

  • 相关阅读:
    C#中有关string和byte[]转换的问题
    慎用HyperThreading Technology
    MSN不能登录 解决“0x81000370错误”
    Life Is a Gamble
    Application Wizard生成的项目文件简介
    在Word中如何进行半行输入
    几个有用的短语
    C#学习之接口
    C++中不容易记忆的访问属性问题
    进一步理解VC中的句柄
  • 原文地址:https://www.cnblogs.com/aten/p/8954699.html
Copyright © 2020-2023  润新知