数学角度分析翻页功能(续代码)
时间:2007-09-04
来源:互联网
假设所有内容都通过 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、由于没有个人空间,所以无法为大家提供演示程序,希望大家体谅.
作者: samsung 发布时间: 2007-09-04
作者: 逆雪寒 发布时间: 2007-09-04
日了,只能回帖。
个人空间搞个国外的吧,免费php空间n多,而且没有国内免费空间这么多限制。
作者: hotbone 发布时间: 2007-09-04
给新手,还是比较 有用的,辛苦了,楼主
作者: dream_qb 发布时间: 2007-09-04
作者: xiaob12 发布时间: 2007-09-22
作者: signalon 发布时间: 2007-09-27
作者: 17too 发布时间: 2007-09-27
我是极力反对将ui的东西放在所谓的分页类里的。
其实一个smarty函数搞定,太复杂了有点八股文的感觉
作者: nightsailer 发布时间: 2007-10-04
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28