cityhuntry
新手上路

UID 97579
精华
0
积分 20
帖子 6
金钱 20 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-27
状态 离线
|
   
(续代码)数学角度分析翻页功能
根据上次写的《从数学角度分析翻页功能的实现》一文,今天整理了1下代码,希望有兴趣的研究1下。
假设所有内容都通过 showall.php这个页面显示
以下是代码:
一、先看函数文件funcion.php中的内容:
//ptotal()函数目的是通过取得指定表$table中所有记录的总和来计算出一共需要显示多少页
//$c为每页需要多少条记录
//返回值$ptotal为总共需要多少页来显示
function ptotal($table,$c)
{
$sql="select count(*) from $table";
$result=mysql_query($sql);
if(!$countdate) echo "数据取得失败"; //容错处理
$array=mysql_fetch_array($result);
$countdate=$array[0]; //取得符合条件数据总数
if($countdate%$c==0)
$ptotal=$countdate/$c;//如果能整除,说明数据根据每页显示的数量正好显示完毕,不需要多加1页
else
$ptotal=$countdate/$c+1;//否则,多加1页
return $ptotal;//函数返回值:总共需要多少页
}
//creat()函数是根据
//$ptotal:总页数
//$pnow:当前为第几页
//$page:显示内容的页面名称
//这3个数值来生成 << < 1 2 3 4 5 > >>这样形式的链接
//并通过?p=x的形式给$page指定页面传递参数
//无返回值
function creat($ptotal,$pnow,$page)
{
if($pnow==1)
$font=1; //如果当前页为第1页,那么点上1页的时候,显示的也是第1页
else
$font=$pnow-1; //否则的话,上1页为:当前页-1
if($pnow==$ptotal)
$behind=$ptotal;//如果当前页为最后1页,那么点下1页的时候,显示的也是最后1页
else
$behind=$pnow+1;//否则的话,下1页为:当前页+1
echo "<a href=\"$page?p=1\"><<</a>"; //生成<<符号,并设置链接为$page?p=1
echo " ";
echo "<a href=\"$page?p=$font\"><</a>";//生成<符号,并设置链接为$page?p=上1页
echo " ";
for($i=1;$i<=$ptotal;$i++)
{
echo "<a href=\"$page?p=$i\">$i</a>";//生成中间的 1 2 3 4 5 并设置链接
echo " ";
}
echo "<a href=\"$page?p=$behind\">></a>";//生成>符号,并设置链接为$page?p=下1页
echo " ";
echo "<a href=\"$page?p=$ptotal\">>></a>";//生成>>符号,并设置链接为$page?p=下1页
}
至此,函数部分完毕,看着多,实际上没多少,一共才30+行,注释多了点,方便理解,显得墨迹了些
二、showall.php
首先定义函数要用到的3个变量
$c=20;//每页记录数量
$page="showall.php";
$table="base";//表的名称为base
if(empty($_GET["p"]))
$pnow=1;//如果没有接受P值的传递,默认显示第一页
else
$pnow=$_GET["p"];//否则根据P值来确定显示第几页
$i=($pnow-1)*$c;//根据页面确定从第几号数据开始显示
$sql="select * from base limit $i,$c";
$result=mysql_query($sql);
while($array=mysql_fetch_array($result))
{
//这里面用echo $array["xxxx"];显示需要显示的数据
}
其次:生成也面最下放的翻页按扭
include "function.php";//包含文件
$ptotal=ptotal($table,$c);//得出总页面数量
creat($ptotal,$pnow,$page);//生成翻页按扭
小结:
1、通过分析,翻页的实现并不困难,函数加上代码也就60行左右,而且由于函数的参与,使得对于任意指定数据表,指定每页显示数据条数,任意显示页面都可以生成跳转连接。
2、如果想把连接搞的好看些,可以通过修改 creat函数中生成连接的语句实现
3、由于不会写类,所以,没有能给出如何用类来实现的方法,有点遗憾,有兴趣的朋友可以试着写写
4、由于没有个人空间,所以无法为大家提供演示程序,希望大家体谅,如果谁能提供演示空间的话可以联系我QQ396664685
5、第一次写教程,有不当的地方大家多提出意见
以上
|
|