文档章节

php分页技术--完善大师兄的分页技术

陈师兄
 陈师兄
发布于 2017/09/01 09:57
字数 1184
阅读 7
收藏 0
点赞 0
评论 0

pagelist.php文件

<?php
//分页原理
//首页来判断总页数

function Page($GX_pageno,$GX_num,$GX_n,$GX_pre_word,$GX_next_word,$GX_end_word,$GX_index_word,$GX_word,$GX_pagelen){
if(!isset($GX_pre)) $GX_pre=true;
if(!isset($GX_next)) $GX_next=true;
if(!isset($GX_end)) $GX_end=true;
if(!isset($GX_index)) $GX_index=true;
if(!isset($GX_word)) $GX_word=false;
if(!isset($GX_n)) $GX_n=1;
if(!isset($GX_pagelen)) $GX_pagelen=15;
if(!isset($GX_page)) $GX_page=8;
if($GX_n>3) $GX_n=3;

if($GX_num==$GX_pagelen){
$all_page = 1;
}else{
if($GX_num%$GX_pagelen==0){
$all_page = floor($GX_num/$GX_pagelen);
}else{
$all_page = floor($GX_num/$GX_pagelen)+1;
}
}
$returnpage='<div class="Blue_page">';
if($GX_word){
   $returnpage.= '<li><span class="GX_word">总记录数:'.$GX_num.'总页数:'.$all_page.'当前页:'.$GX_pageno.'</span></li>';
}
$href = $_SERVER["QUERY_STRING"];
$href = preg_replace('/pageno=([\w+].*)/','',$href);
$href = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$href.'pageno=';
//先处理url和长度
$all_pagelen=$GX_page;  // 定义变量页数的总显示个数
$pagen=$GX_n;
$all_pagel = floor($all_pagelen/2);


// if($GX_index) $returnpage.= '<li><a href="'.$href.'1">'.$GX_index_word.'</a></li>';

if($GX_pageno==1){
    $returnpage.='';
// if($GX_pre)
 // $returnpage.= '<li><a href="javascript:void();">'.$GX_pre_word.'</a></li>';
}else{
if($GX_pre) 
$returnpage.= '<li><a href="'.$href.'1">'.$GX_index_word.'</a></li>';
    $returnpage.='<li><a href="'.$href.($GX_pageno-1).'">'.$GX_pre_word.'</a></li>';
}
if($all_page<=$all_pagelen){  //此处判断总页数小于或者等于$all_pagelen的情况
for($i=1;$i<($all_page+1);$i++){
if($GX_pageno==$i){
$returnpage.='<li><span class="current">'.$i.'</span></li>';
}else{
$returnpage.='<li><a href="'.$href.$i.'">'.$i.'</a></li>';
}
}
}else{//此处处理总页数大于$all_pagelen的页数分页部分
if($GX_pageno>$all_pagel){
if($GX_pageno+$all_pagel<=$all_page){
for($k=$all_pagel;$k>0;$k--){
$returnpage.='<li><a href="'.$href.($GX_pageno-$k).'">'.($GX_pageno-$k).'</a></li>';
}
$returnpage.='<li><span class="current">'.$GX_pageno.'</span></li>';
for($m=1;$m<($all_pagel+1);$m++){
$returnpage.='<li><a href="'.$href.($GX_pageno+$m).'">'.($GX_pageno+$m).'</a></li>';
}
}else{
for($l=($all_pagelen-1);$l>=0;$l--){
if($l==($all_page-$GX_pageno)){
$returnpage.='<li><span class="current">'.$GX_pageno.'</span></li>';
}else{
$returnpage.='<li><a href="'.$href.($all_page-$l).'">'.($all_page-$l).'</a></li>';
}
}
}
}else{
for($j=1;$j<($all_pagelen+1);$j++){
if($GX_pageno==$j){
$returnpage.= '<li><span class="current">'.$j.'</span></li>';
}else{
$returnpage.='<li><a href="'.$href.$j.'">'.$j.'</a></li>';
}
}
}
}
if($GX_pageno+$all_pagel<=$all_page-$pagen){
$returnpage.="<li><span>...</span></li>";
for($n=$pagen;$n>0;$n--){
$returnpage.='<li><a href="'.$href.($all_page-($n-1)).'">'.($all_page-($n-1)).'</a></li>';
}
}
if($GX_pageno==$all_page){
if($GX_next) $returnpage.='<li><a href="javascript:void();">'.$GX_next_word.'</a></li>';
}else{
if($GX_next) $returnpage.='<li><a href="'.$href.($GX_pageno+1).'">'.$GX_next_word.'</a></li>';
}
if($GX_end) $returnpage.= '<li><a href="'.$href.$all_page.'">'.$GX_end_word.'</a></li>';
// $returnpage.=" 跳到<select name='topage' size='1' style='border-radius:4px;height:20px;width:45px;' onchange='window.location=\"".$href."\"+this.value'>\n";  
//         for($i=1;$i<=$all_page;$i++){ 
//           if($i==$GX_pageno) $returnpage.="<option value='$i' selected>$i</option>\n"; 
//           else $returnpage.="<option value='$i'>$i</option>\n"; 
//         } 

$returnpage.="<li><span>共".$all_page."页,</span></li>";   //第几页,共几页
$returnpage.="<li><span >跳到<input type='number' name='topage' class='topage' id='topage' min='1' max='".$all_page."'  value='".$GX_pageno."' />页</span><li>";
$returnpage.="<li><span><input type='submit' name='submit' class='pagesubmit' value='确定'  onclick='window.location=\"".$href."\"+document.getElementById(\"topage\").value'></span></li><div>";

return $returnpage;
}
echo <<<EOT
<style type="text/css">
input:focus {outline:none;}
.Blue_page{width:100%;height:45px;text-align: center;}
.Blue_page li{display:inline-block;margin-left:3px;}
.Blue_page li a{margin: 0 1px;padding: 10 12px;border: 3px double #fff;background: #eee;color: #06f;text-decoration: none;font-family: Arial, Helvetica, sans-serif;font-size:16px;}
.Blue_page li a:hover{margin: 0 1px;padding: 10 12px;border: 3px double #fff;background: red;color: #06f;text-decoration: none;font-family: Arial, Helvetica, sans-serif;font-size:16px;}
.Blue_page li span.current{margin: 0 1px;padding: 10 12px;color: #fff;border: 3px double #fff;background:red;}
.Blue_page li span{color:#06f;}
 .topage{margin: 0 1px;color: #000;border: 3px double #fff; background: #eee;width: 58px;height: 40px; text-align: center;font-size:16px;}
 .pagesubmit{margin: 0 1px;color: #06f;border: 3px double #fff; background: #eee;width: 58px;height: 40px; text-align: center;font-size:16px;cursor:pointer;}
</style>
EOT;
?>

index.php文件

<html>
<head>
<title>分页</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<div >
<table style="width: 400px;margin: 0 auto;">
<?php
 //判断当前页码
 error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE );
include_once("./conn.php");
$GX_pageno=$_GET['pageno']?$_GET['pageno']:'1';//获取页数
$GX_pagelen=6;
$offset=$GX_pagelen*($GX_pageno-1);
$select_limit=$GX_pagelen;
$sql="select * from product limit $offset,$select_limit";
$result=mysql_query($sql,$link);
while ($row=mysql_fetch_array($result)) {
?>
<tr>
     <td bgcolor="#FFFFFF" height="25px">
          <div align="center">
              <?php echo $row['id'];?>
          </div>
     </td>
    <td bgcolor="#FFFFFF">
         <div align="center">
             <?php echo $row['title'];?>
         </div>
     </td>
</tr>
<?php
} 
?>
</table>
</div>
<div>
<?php
$result=mysql_query('select id from product');
$GX_num = mysql_num_rows($result);
// $GX_num=10000;//一共有多少条数据
$GX_n=3;//设置尾部显示多少个页码,不要超过三个为了美观
//$GX_pagelen=100;//一页显示多少条数据
//$GX_page=20;//显示分页列表的长度
//$GX_pre=false;隐藏上一页按钮
//$GX_next=false;隐藏下一页按钮
//$GX_index=false;隐藏首页按钮
//$GX_end=false;隐藏末页按钮
$GX_pre_word=" 上一页 ";
$GX_next_word=" 下一页 ";
$GX_end_word=" 末页 ";
$GX_index_word=" 首页 ";
include "pagelist.php";
echo Page($GX_pageno,$GX_num,$GX_n,$GX_pre_word,$GX_next_word,$GX_end_word,$GX_index_word,'',$GX_pagelen);
//$GX_pageno当前页
//$GX_num总数
//$GX_n最后显示多少项,为了美观最好是3
//$GX_pre_word上一页的设置可以为<
//$GX_next_word下一页可以为>
//$GX_end_word尾页
//$GX_index_word 首页
//$GX_word不存在隐藏总记录数
//$GX_pagelen一页显示多少记录,不存在为15条
?>
</div>
</body>
</html>

conn.php文件

<?php
/*替换为你自己的数据库名*/
$dbname = 'fen';
/*填入数据库连接信息*/
$host = 'localhost';
$port = 3306;
$user = 'root';//用户名(api key)
$pwd = 'root';//密码(secret key)
 /*以上信息都可以在数据库详情页查找到*/

/*接着调用mysql_connect()连接服务器*/
$link = @mysql_connect("{$host}:{$port}",$user,$pwd,true);
mysql_query("set names utf-8");
if(!$link) {
    die("Connect Server Failed: " . mysql_error());
}
/*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
if(!mysql_select_db($dbname,$link)) {
    die("Select Database Failed: " . mysql_error($link));
}
?>

本人比较懒,希望能给有需要的人带来帮助

效果图:

© 著作权归作者所有

共有 人打赏支持
陈师兄
粉丝 0
博文 1
码字总数 1184
作品 0
广州
程序员
PHP分页技术的代码和示例

本文来自:10 Helpful PHP Pagination Scripts For Web Developers 分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互...

岭南六少 ⋅ 2011/08/16 ⋅ 0

数据分页资料汇总

1.数据库分页Java实现(http://www.cnblogs.com/ITtangtang/archive/2012/04/21/2462385.html) 2.Java分页代码的实现(http://www.open-open.com/lib/view/open1346772322162.html) 3. java分页......

IT追寻者 ⋅ 2016/08/13 ⋅ 0

Lucene4.3开发之插曲之斗转星移

现在我们的索引里有2亿多的数据,那么现在的需求是,把索引里的全部数据,读取人后写入txt文本里,对于这么一个量级的数据,显然是不可能一下子全部读取完的,那得要多大的内存才能够支持下来...

heroShane ⋅ 2014/02/21 ⋅ 0

lucene4.7 分页(五)

我们先来看下下面的问题,现在我们的索引里有2亿多的数据,那么现在的需求是,把索引里的全部数据,读取然后写入txt文本里,对于这么一个量级的数据,显然是不可能一下子全部读取完的,那得要...

一枚Sir ⋅ 2014/04/10 ⋅ 1

PHP 分页技术

PHP 数据显示分页技术 数据分页概述对大量数据进行分页显示是 Web 开发中最常见的情况,但大多刚开始接触 Web 开发的开发人员,对分页技术往往比较迷惘,本节教程以一个分页显示留言板的数据...

christina_12345 ⋅ 2014/03/10 ⋅ 0

KnifeCMS.ASP 1.9.8 版发布

KnifeCMS是一款业内领先、功能强劲、安全稳定的内容管理系统。我们力争打造最先进、最完善、最成熟的网站管理系统!KnifeCMS拥有asp asp.net/C# php jsp/Java等多系列、跨平台、全功能的版本...

邵可佳 ⋅ 2013/03/18 ⋅ 6

寻求关于实现分页查询更好的优化方案

关于收集oschina各位大神对于分页查询的优化方案 之前在网上找了许多的数据分页查询方案从sql 优化 到 实现 缓存技术进行分页,感觉还是不满足。 1.下面提交下满足条件 当前大多数新手小白的...

votouch ⋅ 04/13 ⋅ 0

20 个 jQuery 分页插件和教程,附带实例

在这篇文章中我们将向你介绍 20 个最棒的 jQuery 分页插件以及教程,并提供在线演示。 1.客户端的jQuery 分页插件jPages jPages 是一个客户端的分页插件,但提供很多特性例如自动翻页、键盘和...

红薯 ⋅ 2012/04/04 ⋅ 6

19个 jQuery 分页插件和教程,附带实例

在这篇文章中我们将向你介绍 20 个最棒的 jQuery 分页插件以及教程,并提供在线演示。 1.客户端的jQuery 分页插件jPages jPages 是一个客户端的分页插件,但提供很多特性例如自动翻页、键盘和...

凯文加内特 ⋅ 2014/04/30 ⋅ 0

帝国cms打印全局变量的备注 以前帝国cms鲜为人知的秘密

说来极其恶心也是没有办法的事。 由于本人很多技术都摸,有时摸完后就不摸了,当然了不摸的结果就是忘了感觉了! 就拿帝国cms来说,曾经历过三次摸的高潮,每次感觉都不一样,一次比一次感受...

ziluopao ⋅ 2016/10/31 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 1分钟前 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 6分钟前 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 18分钟前 ⋅ 0

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 37分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 53分钟前 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部