文档章节

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

陈师兄
 陈师兄
发布于 2017/09/01 09:57
字数 1184
阅读 17
收藏 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
广州
程序员
私信 提问
Mybatis 分页插件 3.3.0 发布

如果你也在用Mybatis,建议尝试该分页插件,这个一定是最方便使用的分页插件。 该插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库分页。 经过近4个月的完善和反馈,3...

Liuzh_533
2014/12/04
10.5K
28
数据分页资料汇总

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
41
0
lucene4.7 分页(五)

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

一枚Sir
2014/04/10
0
1
Lucene4.3开发之插曲之斗转星移

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

heroShane
2014/02/21
0
0
寻求关于实现分页查询更好的优化方案

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

votouch
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0011-如何在Hive & Impala中使用UDF

1.文档编写目的 本文档讲述如何开发Hive自定义函数(UDF),以及如何在Impala中使用Hive的自定义函数,通过本文档,您将学习到以下知识: 1.如何使用Java开发Hive的自定义函数 2.如何在Hive中...

Hadoop实操
1分钟前
0
0
toString();

package com.atguigu.java1; import java.util.Date; /** * toString()的使用: * * 1.java.lang.Object类中toString()定义如下: * public String toString() { return getClass().getName......

architect刘源源
11分钟前
0
3
不可不说的Java“锁”事

前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点...

Java干货分享
15分钟前
0
0
Java GoEasy 实现服务端推送和Web端推送

项目中需要消息推送,又想降低开发成本。Java服务器端推送,Web端接收推送信息。 具体需求: 需求一:系统框架实现全局异常捕获并录入日志表,实现实时推送消息到客户端页面展示。 需求二:系...

Gibbons
16分钟前
3
0
redis-集群

多个redis节点网络互联,数据共享 所有的节点都是一主一从(可以是多个从),其中从不提供服务,仅作为备用 不支持同时处理多个键(如mset/mget),因为redis需要把键均匀分布在各个节点上,...

chencheng-linux
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部