您的位置:首页 > 编程语言 > PHP开发

PHP分页

2014-04-11 23:04 106 查看
今天在工作之余写的一段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='';
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: