`
阿尔萨斯
  • 浏览: 4243966 次
社区版块
存档分类
最新评论

PHP实现翻页跳转功能

 
阅读更多



我们都知道用 php+mysql 在 web 页实现数据库资料全部显示是非常简单而有趣的,数据库资料很少的情况下页面显示还是让人满意的,但是当数据库资料非常多的情况下,页面的显示情况将会变的 非常糟糕,下面就来介绍一下如何实现当前页面数据资料显示数量及如何实现动态的翻转功能.

这里将介绍两种翻页显示功能的实现:
-----------------------------------------------------------
先介绍一下在翻页中用到的数据库语法:

mysql_query("select * from table order by id desc");

这条数据库语句再熟悉不过了,是用来搜索记录并倒序地显示出来,但并不能在翻页功能中起作用,而下面这个扩展了的语法才是实现翻页的核心功能:

mysql_query("select * from table order by id desc limit $start,$limit");

这里的 $start 是数据库搜索的起始行,$limit 是从起始行开始搜索到 $limit 条记录结束,好了,有了这个核心功能后,我们可以开始翻页功能了;
-----------------------------------------------------------
第一种翻页功能:
这里介绍的功能是翻页功能中最简单的一种,只能实现向前翻页和向后翻页,本站的非常新闻和下载中心的翻页功能就是这种.

先介绍翻页功能实现的思路:
先确定当前页固定显示的数据记录数量,假设为 20 条记录,设定 $limit 的值为 20: $limit=20;

显示数据库记录时,必须是从第一条开始显示,所以这里设置 $start 的初始值为 0:$start=0;

而翻页功能的实现依赖 $start 的动态变化,当向后翻页时 $start 规律地加上 $limit:$start+$limit;而向前翻页时 $start 则规律地减去 $limit:$start-$limit;

有了以上的思路后,可以开始设计程序了 page.php:

<?
//设置当前页显示的数量(这个数量可任意设置)
$limit=20;

//初始化数据库搜索起始记录
if (!empty($start)) $start=0;

mysql_connect("localhost","","");
mysql_select_db(database);

//设置数据库记录总数
$result=mysql_query("select * from table");
$num_max=mysql_numrows($result);

$result=mysql_query("select * from table order by id desc limit $start,$limit);
$num=mysql_numrows($result);

echo "<table><tr><td>翻页功能</td></tr>";

if (!empty($num)) {
for ($i=0;$i<$num;$i++) {
$val=mysql_result($result,$i,"val");
$val1=mysql_result($result,$i,"val1");
echo "<tr><td>$val</td><td>$val1</td></tr>";
}
}

echo "<tr><td>";

//设置向前翻页的跳转
$prve=$start-$limit;
if ($prve>=0) {
echo "<a href=page.php?start=$prve>prve</a>";
}

//设置向后翻页的跳转
$next=$start+$limit;
if ($next<$num_max) {
echo "<a href=page.php?start=$next>next</a>";
}

echo "</td></tr></table>";
?>

一个前翻,后翻功能的程序完成了.但这个功能对处理更多资料显示时,将会显得很累赘.下面将会继续介绍功能更强大,更加复杂的翻页功能--循环翻页(我一直都这么叫,因为找不到更合适的叫法).:)

前面介绍了简单的翻页功能实现,下面介绍的翻页功能更加强大,更加复杂,本站的非常论坛和非常文章就是使用这个循环翻页功能的.
循环翻页是前翻后翻加上数字共同实现的,具体的表现形式为:

页: prve <<1 2 3 4 ....... 20 >> next

里面的数字表示各当前的页面,前翻 prve 和后翻 next 已不仅仅是当前页的前后翻转,而是更加复杂的数字控制前后翻转.

同以往一样,在进行程序设计之前,先理清一下思路,我建议读者在看完如何实现循环翻页的功能后,能自己动手实践一次,因为这里研究的一些方法和思路可能比较抽象.

首先我们大胆假设数据库里存有超过 1000 条的记录,我们希望当前显示 25 条记录,而数字翻转控制为 20,因此就有如下的显示结果:

页: 0 1 2 3 ......... 19 >> next

后翻后的显示结果:

页: prve <<20 27 28 ....... 49 >> next

好,我们来看看其中的规律,一个固定的显示数字 25 ,一个固定的数字控制倍翻 20.我们可以利用这两个数字来实现循环翻页功能;

首先设置固定显示的变量:
$limit=20;
数据库初始变量的设置:
$start=0;
数据库记录总数为:$num;
页数变量:$page;

一个页数循环显示的程序如下:

<?
...
$result=mysql_query("select * from table");
$num=mysql_numrows($result);
for ($page=0;$page<($num/$limit);$page++) {
echo $page;
if ($page>0 && ($page%20)==0) {
break; //退出循环
}
}
?>

这段代码除了显示数字外,其它功能一概没有实现,因为多了数字控制翻转,所以必须要有几个变量来标记并识别这些控制量,这里用了 $s 来标记;这个变量是用来控制数字循环翻页控制的,现在可以看看实现循环翻页的完整代码 page.php:

<?
$limit=25;
if (!empty($start)) $start=0;
if (!empty($s)) $s=0;

mysql_connect("localhost","","");
mysql_select_db(database);

//统计数据库记录总数
$result=mysql_query("select * from table");
$num=mysql_numrows($result);

$result=mysql_query("select * from table order by id limit $start,$limit");
$numb=mysql_numrows($result);
echo "<table>";
if (!empty($numb)) {
for($i=0;$i<$numb;$i++) {
$val=mysql_result($result,$i,"val");
$val1=mysql_result($result,$i,"val1");
echo "<tr><td>$val</td><td>$val1</td></tr>";
}
}
echo "</table>";

//数字循环翻页的控制
echo "<table>";
echo "<tr><td>页:</td>";

//前翻控制
if ($s>20) {
if ($s==21) {
$st=$s-21;
} else {
$st=$s-20;
}
$pstart=$st*$limit;
echo "<td><a href=page.php?";
echo "start=$pstart&s=$st>prve</a></td>";
}
echo "<td> >></td>";

//设置当前页对应页数无链接功能
$star=$start;

//注意循环的初始附值,仔细想想为什么不是 0
for ($page=$s;$page<($num/$limit);$page++) {

$start=$page*$limit;
echo "<td>";

if($page!=$star/$limit) {
echo "<a href=page.php?";
echo "start=$start&s=$s>";
}

echo $page;

if($page!=$star/$limit) {
echo "</a>";
}

echo "</td>";

//控制数字页面限制显示功能,控制只显示 20 页
if ($page>0 && ($page%20)==0) {
if ($s==0) {
$s=$s+21;
} else {
$s=$s+20;
}

$start=$start+$limit;

if ((($num/$limit)-1)>$page) {
echo "<td> <<</td><td><a href'page.php?";
echo "start=$start&s=$s>next</a></td>";
}
//注意跳出循环的控制
break;
}
}
echo "</tr></table>";
?>

以上的程已序可以完成强大的循环翻页功能.
分享到:
评论

相关推荐

    PHP翻页跳转功能实现方法

    主要介绍了PHP翻页跳转功能实现方法,下面就来介绍一下如何实现当前页面数据资料显示数量及如何实现动态的翻转功能,需要的朋友可以参考下

    简易翻页电子书制作 flashpageflip

    能实现flash翻页效果,flashpageflip完整版 你可以用它来创建自己的在线刊物,比如在线目录,数字化说明书,会翻页的图书,交互式传单,电子杂志,会翻转的相册等等,使用简单。可缩放图片,自适应尺寸或全屏视图,...

    一个很不错的PHP翻页类

    php /* * Created on 2007-6-8 * Programmer : Alan , Msn – haowubai@hotmail.com * PHP100.com Develop a project PHP – MySQL – Apache * Window – Preferences – PHPeclipse – PHP – Code Templates */ /...

    多功能点评系统网站源码 v2.6 GBK.zip

    Feed推送,个人空间跳转UCH) 其他功能 词语过滤可设置不同的过滤方式:阻止,替换,审核 菜单管理可自定义模板显示的菜单,不需要再修改模板 伪静态功能优化SEO 09-07-01更新说明: 增加 新闻模块RSS聚合功能 ...

    PHPWEB手机版V1.1(100%开源程序)

    4、优化列表页底部的翻页功能,到首页,上一页就点不了了,同理到最后一页后,下一页也无法点击。同时新增了页数统计,和当前页码等功能。 5、新增手机版控制中心,手机版网址后面加/system/后进入手机版控制中心,...

    一个php分页显示类库

    一个php分页显示类,配合MYSQL数据库使用,类没有...默认每页显示记录数,如果没有设置,就使用默认值,显示当前页及总页数,显示翻页按钮,包括首页、下页、上页、未页,显示跳转页选择框,一次性显示所有按钮组件。

    Jspxcms 源码包 v9.5.1

    Jspxcms是基于Java、JSP技术开发的国产开源CMS,是制作、维护网站的利器。...7、修复站群推送列表翻页跳转文档列表的问题。8、数据库配置文件增加数据库用户名密码示范,避免使用者误认为需要保留大括号。

    一个php分页显示类.zip

    介绍一个php分页显示类,配合MYSQL数据库使用,类...默认每页显示记录数,如果没有设置,就使用默认值,显示当前页及总页数,显示翻页按钮,包括首页、下页、上页、未页,显示跳转页选择框,一次性显示所有按钮组件。

    易思ESPCMS企业建站管理系统 P8.19042801 稳定版.zip

    [修复]:选择关联文章的时候,如果翻页过多,则翻页会换行 [修复]:修复lib_read标签中的错误 [修复]:在修改分类的时候,偶尔出来import错误 [修复]:同步的时候,如果分类禁止了,就无法同步 [修复]:导航中...

    2023.10 浪子易支付全新源码

    6.优化支付通道列表,支持翻页与快速复制通道 7.新增创建订单人机验证,防止被恶意创建订单 8.修复其他一些已知问题 2023/06/30: 1.跳转微信客服支持多企业多客服轮询 2.新增黑名单列表,订单界面可一键添加 3.新...

    多多V7.3_UTF8_20111221免授权无限制商业正式版

    只要在淘宝购物时,右键即可实现淘宝购物返现功能(独家)。 7、会员自助推广凡注册的会员均可以实现自动推广能获得其推广人返现额的一定比例的奖金。 8、前台实现全站伪静态功能。更有利于收录。 9、Ucenter整合、...

    淘客帝国破解版

    S8跳转功能:当商品已下架,点击"立刻购买",可跳转到S8设置搜索.防止客户流失! App Key轮换功能:当一个App Key超频则自动切换到下一个App Key。有效解决因API调用频率不够而无法调取到商品数据的情况! 其他高级...

    多奥淘宝客程序 V6.2.rar

    实现代码与界面的分离,支持模板切换。程序提供多个大方美观的模板提供下载,用户也可以定制自己喜欢的样式。 5. 安全的架构 对用户的输入都进行严格的安全控制。对各种恶意的注入、跨站攻击等都有防御手段。 6. ...

    ZSITE全网营销系统-PHP

    ZSITE全网营销系统(原蝉知系统)是由业内资深开发团队开发的一款专向企业营销使用的企业门户系统,企业使用ZSITE系统可以非常方便地搭建一个专业的企业营销...修复后台分页较多时被翻页按钮遮挡的问题 修复其他已知Bug

    多奥淘宝客_淘客帝国最新版

    实现代码与界面的分离,支持模板切换。程序提供多个大方美观的模板提供下载,用户也可以定制自己喜欢的样式。 5. 安全的架构 对用户的输入都进行严格的安全控制。对各种恶意的注入、跨站攻击等都有防御手段。 6. ...

    多奥淘客程序2011最新版本可以整合文章系统

    实现代码与界面的分离,支持模板切换。程序提供多个大方美观的模板提供下载,用户也可以定制自己喜欢的样式。 5. 安全的架构 对用户的输入都进行严格的安全控制。对各种恶意的注入、跨站攻击等都有防御手段。 6....

    店盟淘客程序

    实现代码与界面的分离,支持模板切换。程序提供多个大方美观的模板提供下载,用户也可以定制自己喜欢的样式。 5. 安全的架构 对用户的输入都进行严格的安全控制。对各种恶意的注入、跨站攻击等都有防御手段。 6....

    多奥淘宝客2012最新版

    实现代码与界面的分离,支持模板切换。程序提供多个大方美观的模板提供下载,用户也可以定制自己喜欢的样式。 5. 安全的架构 对用户的输入都进行严格的安全控制。对各种恶意的注入、跨站攻击等都有防御手段。 6....

    风越.net代码生成器 v3.5

    16、提供多种灵活翻页方案,用户可设置每页记录条数、上/下页、前/后N页、输入数字跳转到指定页面等,提高海量数据翻页速度 17、提供丰富的建站常用VB、JS函数库 ★ 18、更多扩展功能: 添加、修改页面在保存信息前...

Global site tag (gtag.js) - Google Analytics