喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

[北京]代朋友公司招聘PHP高级程序员多名

上一主题 下一主题
     
标题: [原创] (续代码)数学角度分析翻页功能  
 
cityhuntry
新手上路
Rank: 1



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、第一次写教程,有不当的地方大家多提出意见

以上
2007-8-28 12:09 AM#1
查看资料  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] 好久没发问了!!!
个人还是比较赞同分页代码与数据库分离。分页只传递总页数、每页N行,这样子。



五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2007-8-30 04:37 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
fly512 (我本如是)
版主
Rank: 7Rank: 7Rank: 7
人生的另一半


UID 42566
精华 0
积分 2461
帖子 2329
金钱 1731 喜悦币
威望 0
人脉 730
阅读权限 100
注册 2004-10-31
来自 亚特兰迪斯
状态 离线
[推荐阅读] 诚聘同事
写之前,还是要看看别人的



不要使用数据库
2007-8-31 12:37 PM#3
查看资料  访问主页  Blog  发短消息  顶部
 
cityhuntry
新手上路
Rank: 1



UID 97579
精华 0
积分 20
帖子 6
金钱 20 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-27
状态 离线
[推荐阅读] 能否得到网页跳转后的url?
谢谢楼上2位前辈提出宝贵意见,以后写东西的时候我会注意滴
2007-9-2 12:42 AM#4
查看资料  发短消息  顶部
 
bjbs_270
中级会员
Rank: 3Rank: 3
中级会员



UID 17027
精华 1
积分 265
帖子 267
金钱 255 喜悦币
威望 10
人脉 0
阅读权限 30
注册 2002-10-16
来自 河南·南阳---深圳
状态 离线
[推荐阅读] 招聘两名高级PHP开发工程师(待遇优)
还有人在讨论分页,交JS处理好了。个人觉得没有必要把这样的工作交PHP来处理



http://blog.csdn.net/bjbs_270
2007-9-2 11:42 PM#5
查看资料  访问主页  发短消息  QQ  顶部
 
村长夫人
中级会员
Rank: 3Rank: 3


UID 94673
精华 0
积分 497
帖子 964
金钱 497 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-6-29
状态 离线
[推荐阅读] php关于类的调用
我的做法是将 分页计算分离出来封装到类型里 和数据库 和html都没有关系
唯一和数据库有关系的就是 有一个方法输出当前页数下数据库的起始记录数 也就是limit子句的第一个参数




又该换马甲了.....
2007-9-3 10:00 AM#6
查看资料  发短消息  顶部
 
cityhuntry
新手上路
Rank: 1



UID 97579
精华 0
积分 20
帖子 6
金钱 20 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-8-27
状态 离线
[推荐阅读] 继续招聘PHP实习生
能具体说下你的方法么,如果你不介意的话,学习学习
2007-9-3 07:18 PM#7
查看资料  发短消息  顶部
 
村长夫人
中级会员
Rank: 3Rank: 3


UID 94673
精华 0
积分 497
帖子 964
金钱 497 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-6-29
状态 离线
[推荐阅读] 专接外包项目,网站建设,网页设计等
这有啥介意的 互相交流嘛 我马甲的代码 请指教
http://www.phpx.com/happy/thread-131368-4-1.html




又该换马甲了.....
2007-9-4 11:19 AM#8
查看资料  发短消息  顶部
 
村长夫人
中级会员
Rank: 3Rank: 3


UID 94673
精华 0
积分 497
帖子 964
金钱 497 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-6-29
状态 离线
[推荐阅读] 请推荐一个可借鉴学习的PHP程序
晕 难道是村子把我刚发的代码吃了



又该换马甲了.....
2007-9-4 11:22 AM#9
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026136 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP