首页  >  文章  >  php教程  >  PHP分页

PHP分页

WBOY
WBOY原创
2016-06-21 08:48:281197浏览

今天在工作之余写的一段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 ''.$arr[$i]['title'].''.' '.'<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 "上一页";
	}
	
	//向前跳页
	if ($CurrentPageID > 2){
		echo " <<< ";
	}
	
	//输出详细的页数,如:【1】
	for ($j=1;$j<=$PageCount;$j++){
		echo "[$j]";
	}
	
	//向后跳页
	if ($CurrentPageID <= ($PageCount-2)){
		echo " >>> ";
	}
	
	//当为最后一页时不输出“下一页”
	if ($CurrentPageID != $PageCount){
		echo "下一页";
	}
	
	$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='';
	}
}



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn