Heim  >  Artikel  >  php教程  >  PHP分页

PHP分页

WBOY
WBOYOriginal
2016-06-21 08:48:281197Durchsuche

今天在工作之余写的一段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='';
	}
}



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn