通过清心醉

PHP实现翻页

PHP-翻页

来个简单的类文件:

class.php

<?php
class Page
{
function Page_num($numrow,$default) #页面统计
{
$num=$numrow/$default;
return ceil($num);
/*
判断SQL总行数除默认一页的行数,得出有多少个页面
但就有一个问题,比如是10行,一行3个,那么得到的结果是3.33
所以使用ceil函数,将浮点类型转整型并+1,用ceil()的方法.
*/
}
function Page_on($page_on) #上一页
{
if($page_on!=0) #上一页不能=0
{
return $page_on-1; //$page的参数减1表示往回一页
}
else
{
return $page_on=0; //否则返回到第一页
}
}
function Page_next($page_next,$pagenum)
{
if($page_next<$pagenum)#后一页的数字必须小于最大值.==的话也不行.
{
return $page_next+1;
}
else
{
return $page_next=0;
}
}
}

然后是页面的文件

page.php

<?php
header(“Content-Type:text/html;charset=utf-8”); #页面编码
date_default_timezone_set(‘Asia/Shanghai’); #时区
/***********************************************/
/*
由于各人的SQL配置不一样,直接修改下面4个参数即可.
同时表内必须有name,time,text,ip这4个字段或者修改
foreach ( $pdo->query($sql1) as $row)里面的$row[“”]参数
*/
$dbname=”数据库名称”; #数据名
$dbtable=”数据表名称”; #表名
$dbuser=”root”; #MYSQL用户
$dbpassword=””; #MYSQL密码
/***********************************************/

$pdo=new PDO (“mysql:host=localhost;dbname=$dbname;charset=utf8″,$dbuser,$dbpassword);
require_once ‘class.php’; #包含所有类文件
$classpage=new Page(); #实例化页面类
$default=3; //默认页显示数量
$page=0; //页面控制
$pagecolor=1;
$sql=”SELECT *FROM $dbtable”; #获取sql行总数语句
$echotext=$pdo->prepare($sql);
$echotext->execute();
$numrow=$echotext->rowCount(); //获取数据集的行数

$pagenum=$classpage->Page_num($numrow,$default); #计算出有多少页
if (is_array($_GET)&&count($_GET)>0)//先判断是否通过GET传值了
{
if(isset($_GET[“page”])&&!empty($_GET[“page”]))
{
if(is_numeric($_GET[“page”]))#判断是否为整数或整数字符串
{
if($page<=$pagenum)
{
$pagecolor=$_GET[“page”];
$page=($pagecolor-1)*$default;
/*把值重新赋予给页面数
获取的页面为什么要-1?
比如页面是2,数据库是从第4行开始,+3,即4-6行的数据
如果值是(2-1)*3=3;(3-1)*3=6
即一页3个的话
page=2即读取第四行开始
page=3即读取第七行开始
*/
}
}
}
}
$sql1=”SELECT *FROM $dbtable limit $page,$default “;
#如果if (is_array($_GET)&&count($_GET)>0)语句里的没被执行,那么将会执行初始值$page=0,$default=3;
foreach ( $pdo->query($sql1) as $row)
{
#如果不设置字段,这修改字段参数
echo $row[“name”].”</br>”;    echo $row[“time”].”</br>”;
echo $row[“text”].”</br>”;    echo $row[“ip”].”</br>”;
echo “—————–我是分割线哦—————–</br>”;
}
//$page_on=$classpage->Page_on($pagecolor,$pagenum);
//将页面的pagecolor参数传值-1,根据颜色来判断页面

echo “<a href=?page=1>首页</a> “;
if(($page_on=$classpage->Page_on($pagecolor))!=0)
{ #如果返回的结果=0(比如第一页-1=0,那么不输出前一页)
echo “<a href=?page=”.$page_on.”>前一页</a> “;
}

for($o=0;$o<$pagenum;$o++)
{
$i=$o+1; //实现0页不存在即第一页起步.
if($i==$pagecolor) #获取页面的颜色
{
echo “<a href=?page=”.$i.”><font  color=’red’>第”.$i.”页</font></a>  “;
}
else
{
echo “<a href=?page=”.$i.”>第”.$i.”页</a>  “;
}
}
if(($page_next=$classpage->Page_next($pagecolor,$pagenum))!=0)
{
echo “<a href=?page=”.$page_next.”>后一页</a> “;
}
echo “<a href=?page=”.$pagenum.”>尾页</a> “;

 

 

关于作者

清心醉 administrator

发表评论

请输入验证码: