可以移植的PHP分页函数

发表一个 可以移植的PHP分页函数
分页函数中的$URL参数 使用了  JoinChar 函数 ->作用 在URL后面加?或&
function ShowPages($totle,$displaypg=20,$url=''){ 
             global 
$page,$firstcount,$pagenav,$_SERVER;
             
$GLOBALS["displaypg"]=$displaypg;
             if(!
$page$page=1;
             if(!
$url){
                     
$url=JoinChar($_SERVER["REQUEST_URI"]);
             }else{
                     
$url=JoinChar($url);
             }
             
             
$lastpg=ceil($totle/$displaypg); 
             
$page=min($lastpg,$page);
             
$prepg=$page-1
             
$nextpg=($page==$lastpg $page+1); 
             
             
$firstcount=($page-1)*$displaypg;
             
             
$pagenav="显示第 <B>".($totle?($firstcount+1):0)."</B>-<B>".min($firstcount+$displaypg,$totle)."</B> 条记录,共 $totle 条记录<BR>";
             if(
$lastpg<=1) return false;
             
             
$pagenav.=" <a href=\"{$url}page=1\">首页</a> ";
             if(
$prepg$pagenav.=" <a href=\"{$url}page=$prepg\">前页</a> "; else $pagenav.=" 前页 ";
             if(
$nextpg$pagenav.=" <a href=\"{$url}page=$nextpg\">后页</a> "; else $pagenav.=" 后页 ";
             
$pagenav.=" <a href=\"{$url}page=$lastpg\">尾页</a> ";
             
             
$pagenav.=" 到第 <select name='topage' size='1' onchange='window.location=\"{$url}page=\"+this.value'>\n";
             for(
$i=1;$i<=$lastpg;$i++){
                     if(
$i==$page$pagenav.="<option value='$i' selected>$i</option>\n";
                     else 
$pagenav.="<option value=\"$i\">$i</option>\n";
             }
             
$pagenav.="</select> 页,共 $lastpg 页";
}


function 
JoinChar($strUrl){
             if (
is_null($strUrl)){
                     
$JoinChar="";
                     exit;
             }
             if(
strcspn($strUrl,"?") < strlen($strUrl)){ 
                     if (
strcspn($strUrl,"&") < strlen($strUrl)){
                                 
$JoinChar=$strUrl."&";
                     }else{
                                 
$JoinChar=$strUrl;
                     }
             }else if(
strcspn($strUrl,"?") == strlen($strUrl)){
                                 
$JoinChar=$strUrl."?";
             }else{
                     
$JoinChar=$strUrl;
             }
             return 
$JoinChar;
}

下面举例说明它的用法:
//(前面程序略) 
include("pageft.php"); //包含&ldquo;pageft.php&rdquo;文件
//取得总信息数
$result=mysql_query("select * from mytable");
$total=mysql_num_rows($result);
//调用pageft(),每页显示10条信息(使用默认的20时,可以省略此参数),使用本页URL(默认,所以省略掉)。
pageft($total,10);
//现在产生的全局变量就派上用场了:
$result=mysql_query("select * from mytable limit $firstcount,$displaypg ");
while(
$row=mysql_fetch_array($result)){
//(列表内容略)
}


//输出分页导航条代码:
echo $pagenav;


//(后面程序略)

下图即为导航条格式显示的效果: 

附件: fenye.bmp (20.38 K, 下载次数:324)
Tags: php
« 上一篇 | 下一篇 »
只显示10条记录相关文章
php header 跳转 (浏览: 451, 评论: 0)
PHP5_OOP面向对象---教程下载 (浏览: 2299, 评论: 0)
在DISDUZ!5.5中添加代码高亮插件成功 (浏览: 3123, 评论: 1)
xajax+php的一个DEMO--Blackjack(21点) (浏览: 3503, 评论: 3)
关于使用PHP6的感受 (浏览: 2735, 评论: 0)
[PHP AJAX] 简单比较 xajax、AJASON、flxAJAX、Aja... (浏览: 2711, 评论: 0)
一个适用于验证码的小函数 (浏览: 19844, 评论: 0)
PHP本地执行放在远程服务器上的脚本 (浏览: 19832, 评论: 0)
用PHP动态创建Flash动画 (浏览: 19222, 评论: 0)
php与XML、XSLT、Mysql的结合运用,代码篇 (浏览: 19843, 评论: 0)
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
发表评论

评论内容(*):