一个好用的分页函数


Posted in PHP onNovember 16, 2006
本人原创的代码,高手看来,也许流程笨拙点,但是很实用.看者要顶啊     /*---------------------------------------------------------------// 
  * 函数说明:分页函数 page($sql,$pagesize="30") 
  * $sql 查询语句(除limit外,可带排序或者条件限制)  
  * 如 select * from stu where time between "1" and "30"; 
  * $pagesize 每页的显示条数 
  * ## 可输出数组$arr的值,说明如下:  
  *    $arr["first"]    首页及地址 
  *    $arr["page_pre"] 上一页及地址 
  *    $arr["all"]      当第几页和总页数 
  *    $arr["page_next"]下一页及地址 
  *    $arr["last"]     末页及地址 
  *    $arr["pagelist"] 页码列表及地址,显示当前页前后4页列表 
  *    $arr["query"]    语句 $arr["query"] = mysql_query($sql) 
  *    $arr["nums"]     记录总数 
  *                                 2006.09.06 by Kevin QQ:84529890 
//----------------------------------------------------------------*/ 
function page($sql,$pagesize="30"){ 
global $arr,$PHP_SELF; 
$query = mysql_query($sql); 
$num = mysql_num_rows($query); 
$pagecount = ceil($num/$pagesize); 
$page = $_GET["page"]; 
if(!$page) $page=1; 
if($page>$pagecount) $page = $pagecount; 
$offset = ($page-1)*$pagesize; 
$sql.=" limit $offset , $pagesize"; 
$arr["query"] = mysql_query($sql); 
if($page>1){ 
     $page_pre = $page-1; 
  $page_url = $PHP_SELF . "?page=".$page_pre; 
  $arr["page_pre"] = "<a href=\"".$page_url."\">上一页|</a>\n"; 
} 
if($page<$pagecount){ 
     $page_next = $page+1; 
  $page_url = $PHP_SELF . "?page=".$page_next; 
  $arr["page_next"] = "|<a href=\"".$page_url."\">下一页</a>\n"; 
} 
$arr["all"] = "<font color=\"#FF0000\">".$page ."</font>/". $pagecount . "页\n"; 
$arr["first"] = "<a href=\"".$PHP_SELF."?page=1\">首页</a>\n|"; 
$arr["last"]  = "|<a href=\"".$PHP_SELF."?page=".$pagecount."\">末页</a>\n"; 
$plfront=""; 
if($page<=5 && $page>=1){ 
     for($i=1;$i<=9;$i++){ 
      $plfront.= " <a href=\"".$PHP_SELF."?page=$i\">".$i."</a>"; 
   } 
}elseif($page>5 && $page<$pagecount-5){ 
     for($i=$page-4;$i<$page+5;$i++){ 
      $plfront.= " <a href=\"".$PHP_SELF."?page=$i\">".$i."</a>"; 
   } 
}else{ 
     for($i=$pagecount-8;$i<=$pagecount;$i++){ 
      $plfront.= " <a href=\"".$PHP_SELF."?page=$i\">".$i."</a>"; 
  } 
} 
$arr["pagelist"] = $plfront." "; 
$arr["nums"] = $num; 
   }
PHP 相关文章推荐
PHP操作xml代码
Jun 17 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
PHP计数器的实现代码
Jun 08 PHP
PHP mysql事务问题实例分析
Jan 18 PHP
PHP实现链式操作的原理详解
Sep 16 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
PHP生成推广海报的方法分享
Apr 22 PHP
php使用环形链表解决约瑟夫问题完整示例
Aug 07 PHP
Thinkphp5.0框架视图view的模板布局用法分析
Oct 12 PHP
laravel5 Eloquent 实现事务方式
Oct 21 PHP
Laravel手动返回错误码示例
Oct 22 PHP
第十五节--Zend引擎的发展
Nov 16 #PHP
第十四节--命名空间
Nov 16 #PHP
第十三节--对象串行化
Nov 16 #PHP
第十二节--类的自动加载
Nov 16 #PHP
第十一节--重载
Nov 16 #PHP
第十节--抽象方法和抽象类
Nov 16 #PHP
第九节--绑定
Nov 16 #PHP
You might like
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
2016/03/05 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
点击进行复制的JS代码实例
2013/08/23 Javascript
jquery实现的下拉和收缩效果示例
2014/08/21 Javascript
jQuery实现邮箱下拉列表自动补全功能
2016/09/08 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
js原生日历的实例(推荐)
2017/10/31 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
[原创]jquery判断元素内容是否为空的方法
2018/05/04 jQuery
JQueryDOM之样式操作
2019/03/27 jQuery
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
[01:08:00]Fnatic vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
Python编程之序列操作实例详解
2017/07/22 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
商务日语专业自荐信
2014/04/17 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
今日说法观后感
2015/06/08 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers
Python面试不修改数组找出重复的数字
2022/05/20 Python
netty 实现tomcat的示例代码
2022/06/05 Servers