• PHP分页


    今天在工作之余写的一段PHP分页处理脚本,欢迎拍砖!!!
    显示页面 index.php
    <?php 
    		require_once 'include/showbbsProcess.php';
    		require_once 'include/showbbs_fun.php';		
    		@$connectmysql=new connectMysql();
    		
    		if (empty($_GET['CurrentPageID'])){
    			$CurrentPageID=1;//当前是第几页
    		}else {
    			$CurrentPageID=$_GET['CurrentPageID'];
    		}
    		
    		$PageSize=5;
    		echo showCenter($CurrentPageID, $PageSize, $connectmysql);
    		?>

    分页处理函数 showbbsProcess.php
    <?php
    function showCenter($CurrentPageID,$PageSize=5,$connectmysql){
    	$arr=showbbs($PageSize, $CurrentPageID, $connectmysql);
    	foreach ($arr as $values){
    		for ($i=0;$i<count($arr);$i++){
    			echo '<a href="#">'.$arr[$i]['title'].'</a>'.' '.'<span style="float:right;font-size:12px;">作者:'.$arr[$i]['poster'].' '.'发布时间:'.$arr[$i]['posted'].'</span><br /><hr />';
    			//如果遍历完$arr数组里的所以元素,即$i($i从0开始)等于数组的元素个数减一,则跳出2层循环(for循环和foreach循环)
    			if ($i==(count($arr)-1))
    				break 2;
    		}
    	}
    	
    	$RowCount=getRowCount($connectmysql);//一共有多少条记录
    	
    	$PageCount=ceil($RowCount/$PageSize);//共有几页,ceil()函数进一取整
    	
    	echo '帖子统计:'.$RowCount.'条'.' '.'共有'.$PageCount.'页 ';
    	
    	//当为第一页时不输出“上一页”
    	if ($CurrentPageID != 1){
    		echo "<a href='index.php?CurrentPageID=".($CurrentPageID-1)."'>上一页</a>";
    	}
    	
    	//向前跳页
    	if ($CurrentPageID > 2){
    		echo "<a href='index.php?CurrentPageID=".($CurrentPageID-2)."'> <<< </a>";
    	}
    	
    	//输出详细的页数,如:【1】
    	for ($j=1;$j<=$PageCount;$j++){
    		echo "<a href='index.php?CurrentPageID=".$j."'>[$j]</a>";
    	}
    	
    	//向后跳页
    	if ($CurrentPageID <= ($PageCount-2)){
    		echo "<a href='index.php?CurrentPageID=".($CurrentPageID+2)."'> >>> </a>";
    	}
    	
    	//当为最后一页时不输出“下一页”
    	if ($CurrentPageID != $PageCount){
    		echo "<a href='index.php?CurrentPageID=".($CurrentPageID+1)."'>下一页</a>";
    	}
    	
    	$connectmysql->closeConn();
    }

    与数据库沟通的函数 showbbs_fun.php
    <?php
    require_once '/class/connectMysql.php';
    
    //该函数用来获取数据库中的数据并返回一个二维数组
    function showbbs($PageSize,$CurrentPageID,$connectmysql){
    	$a=($CurrentPageID - 1)*$PageSize;
    	$sql="select * from db_content limit $a,$PageSize";
    	$arr1=$connectmysql->getRowsArray($sql);
    	return $arr1;
    }
    
    //该函数用来查询数据库的表的行数
    function getRowCount($connectmysql){
    	$sql="select * from db_content";
    	$num=$connectmysql->getRowsNum($sql);
    	return $num;
    }

    数据库类 connectMysql.php
    <?php
    /***
     * 这个类用于处理数据库连接相关操作
     */
    class connectMysql{
    	private $host='localhost';
    	private $username='root';
    	private $password='szy19900316';
    	private $dbname='db_caomei';
    	private $conn='';//数据库连接资源
    	private $result='';//查询的结果
    	private $resultArray;//将查询的结果输出为一个单条记录的数组
    	private $rowsArray=array();//含有多条记录的二维数组
    	private $rowsNum=0;//返回的结果数
    	
    	function __construct(){
    	}
    	
    	//连接数据库
    	function conndb(){
    		$this->conn=mysql_connect($this->host,$this->username,$this->password);
    		@mysql_select_db($this->dbname,$this->conn);
    		mysql_query('set names utf-8');
    	}
    	
    	//查询结果
    	function getResult($sql){
    		if ($this->conn==''){
    			$this->conndb();
    		}
    		$this->result=mysql_query($sql,$this->conn);
    	}
    	
    	//返回查询的记录数
    	function getRowsNum($sql){
    		$this->getResult($sql);
    		$num_rows=mysql_num_rows($this->result);
    		if (mysql_errno()==0){
    			return $num_rows;
    		}else {
    			return '';
    		}
    	}
    	
    	//将结果输出为一个单条记录数组并返回
    	function getArray($sql){
    		$this->getResult($sql);
    		if (mysql_errno()==0){
    			$this->resultArray=mysql_fetch_array($this->result,MYSQL_ASSOC);//得到关联数组
    			return $this->resultArray;
    		}else {
    			return '';
    		}
    	}
    	
    	//返回一个含有多条记录的二维数组
    	function getRowsArray($sql){
    		$this->getResult($sql);
    		if (mysql_errno()==0){
    			while ($row=mysql_fetch_array($this->result,MYSQL_ASSOC)){
    				$this->rowsArray[]=$row;
    			}
    			return $this->rowsArray;
    			//print_r($this->rowsArray);exit;
    		}else {
    			return '';
    		}
    	}
    
    	//更新、添加、删除
    	function uidresult($sql){
    		if ($this->conn==''){
    			$this->conndb();
    		}
    		//echo $sql;
    		//exit;
    		@mysql_query($sql);
    		$this->rowsNum=@mysql_affected_rows();
    		if (mysql_errno()==0){
    			return $this->rowsNum;
    		}else {
    			return '';
    		}
    	}
    	
    	//释放结果集
    	function freeResult(){
    		mysql_free_result($this->result);
    		$this->rowsNum=0;
    		$this->rowsArray='';
    		$this->resultArray='';
    	}
    	
    	//关闭数据库
    	function closeConn(){
    		$this->freeResult();
    		mysql_close($this->conn);
    		$this->conn='';
    	}
    }

  • 相关阅读:
    EF 配置(SqlServer,Mysql)
    mysql sql优化
    非root用户安装、配置mysql
    使用spring jdbc遇到的一个性能问题
    mac 修改 vim 配色
    logstash 监控日志文件时应对日志文件名改变的原理
    java Atomic compareAndSet部分原理分析
    实现进程单例的一些想法
    java String、String.concat和StringBuilder性能对比
    Elasticsearch 动态修改replica配置、增删replica
  • 原文地址:https://www.cnblogs.com/qmsu/p/3832483.html
Copyright © 2020-2023  润新知