打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP中分页显示原理及代码
发布:廖万飞  |  发布时间:2007-11-19  |  点击次数:124
内容提要: 1
一、知识点
这段分页显示程序是比较通用的一段代码,它里面有几个函数和系统变量是我们先前没有学习到的,我们先把这些知识解决一个:
1、isset(变量名)
本函式用来测试变量是否已经设定。若变量已存在则传回 true 值。其它情形传回 false 值。
使用范例
<?php
$a = "test";
echo isset($a); // true
echo isset($b); // false
?>
2、ceil(数值型表达式)
本函式用来计算比表达式参数值大的最小整数。
使用范例
本例传回值为 4。
<?php
$nextint=ceil(3.14);
echo $nextint;
?>
3、mysql_num_fields(数据表指针)
本函式可以得到指针所指数据表的字段的数目。
4、mysql_field_name(数据表指针)
本函式用来取得指定字段的名称。
5、mysql_data_seek(数据表指针,n)
本函式可移动内部传回的指针到指定的第n条记录。之后若使用 mysql_fetch_row() 可以传回当前指针所指的值。成功传回 true、失败则传回 false。
6、$PHP_SELF:这是一个php系统变量,表示目前正在执行 PHP 程序的文件名
7、count(变量名)
这个函式用来计算阵列的元素个数 (亦可将变量代入,只不过传回的整数将是 1)。变量还没有设定时,传回值为 0。变数若不是阵列,传回值为 1。
二、源程序
<?
include("header.php");
$query = "select * from shengqing";
$gPageSize=10;  //设定每页显示的记录数
$rresult = mysql_query($query) or die("无法执行SQL:$query");
if(!isset($page)) $page=1;  //判断$page是否存在,$page设定当前页数
if($page==0) $page=1;  //若$page存在或为零,都设定其为1,防止页码太小
if(($nNumRows= mysql_num_rows($rresult))<=0)
{
echo "<p align=center>没有纪录";
exit;
}
$MaxPage = ceil($nNumRows/$gPageSize);  //取得最大页数
if($page > $MaxPage){
$page=$maxPage;  //防止当前页数太大
}
<table align="center" width="80%" border=0>
<tr>
<td><? echo "<font size=2>第$page 页,共 $MaxPage 页</font>";?></td>
<td></td>
</tr>
</table>
<table align="center" width="80%" border="1" cellspacing="0" cellpadding="4" bordercolorlight="#CC9966" bgcolor="#00F2EE" bordercolordark="#FFFFFF" class="LZH">
<tr bgcolor="#F7F2ff" style="font-size:14.8px;font-weight:bold">
<?
for($iCnt = 0; $iCnt < mysql_num_fields($rresult); $iCnt++)
{
echo "<td>".mysql_field_name($rresult,$iCnt)."</td>" ;
}//第一行显示各个字段名
</tr>
<?
//根据偏移量($page - 1)*$gPageSize,运用mysql_data_seek函数得到要显示的页面
if( mysql_data_seek($rresult,($page-1)*$gPageSize) )
{
//如果所指的记录存在,则循环显示当前记录集,指针指到第($page-1)*$gPageSize条
$i=0;
//循环显示当前记录集
for($i;$i<$gPageSize;$i++)
{
echo "<tr style=\"font-size:12px\">";
//得到当前纪录,填充到数组$arr;
$arr= mysql_fetch_row($rresult);
if($arr)//如果数组存在,就是说数组中有值
{
//循环显示当前纪录的所有字段值
for($nOffSet = 0;$nOffSet < count($arr);$nOffSet++)//统计$arr数组中有几个元素
{
echo "<td>".$arr[$nOffSet]."</td>";//字符连结符.可以取掉
}
}
echo "</tr>";
}
}
</table>
<br>
<hr size=1 width=80%>
<div align=center style="font-size:12px">
<?
//首页和上一页的链接
if( $nNumRows>1 && $page>1)
{
$prevPage=$page-1;
echo " <a href=$PHP_SELF?page=1>首页</a> "; //$PHP_SELF?page=1,?page是GET传值的一种方式,将1赋给page,再调用本程序
echo " <a href=$PHP_SELF?page=$prevPage >上一页</a> ";
}
//下一页和末页的链接
if( $page>=1 && $page<$MaxPage)
{
$nextPage= $page+1;
echo " <a href=$PHP_SELF?page=$nextPage >下一页</a> ";
echo " <a href=$PHP_SELF?page=$MaxPage >末页</a> ";
}
</div>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
php实现搜索和分页效果
phpexcel导入excel数据到MYSQL数据库
php分页原理教程及简单实例
PHP访问MySQL数据库的几种方法(转)
Smarty分页显示留言的例子
PHP查询分页程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服