+ -
当前位置:首页 → 问答吧 → 数学角度分析翻页功能(续代码)

数学角度分析翻页功能(续代码)

时间:2007-09-04

来源:互联网

根据上次写的《从数学角度分析翻页功能的实现》一文,今天整理了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、由于没有个人空间,所以无法为大家提供演示程序,希望大家体谅.

作者: samsung   发布时间: 2007-09-04

:)  GOOD

作者: 逆雪寒   发布时间: 2007-09-04

"有空必来,有来必言,有言必留,有留必看"

日了,只能回帖。
个人空间搞个国外的吧,免费php空间n多,而且没有国内免费空间这么多限制。

作者: hotbone   发布时间: 2007-09-04

顶下,我收录了~~
给新手,还是比较 有用的,辛苦了,楼主

作者: dream_qb   发布时间: 2007-09-04

看了下 收藏  学习

作者: xiaob12   发布时间: 2007-09-22

就是一简单的分页也取个牛XX的名字:Q :Q

作者: signalon   发布时间: 2007-09-27

:lol   楼上的...其实LZ说的这些都是最基本的,也是最主要的...不要忽视`~学习一下`~

作者: 17too   发布时间: 2007-09-27

不明白一个简单的分页要搞这么多名堂
我是极力反对将ui的东西放在所谓的分页类里的。
其实一个smarty函数搞定,太复杂了有点八股文的感觉

作者: nightsailer   发布时间: 2007-10-04