`

PHP分页小程序

    博客分类:
  • PHP
阅读更多
<html>        
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<?php
  /**
  * 看这个函数先,请先看看google的翻页效果,以下函数,基本实现了他的功能
  *   
 * 这是一个通用的函数,只要是分页的程序都可以利用到他,以后你可以直接套用,,
 *  参数$url:这是代表翻页程序的url,这个很重要.等下详细解析
 *  参数$totalCount:这个是代表你数据库查询记录数的总数.稍微想下.没有一个总数,如何分页.
 *  参数$pageNo:代表你传递来第几页,默认第一页
 *  参数$pageSize:这个是你每页显示多少个记录啊,这个要根据你页面的布局来设定,所以这里设置了成为参数传递进来
 
    建议:有的地方不懂,你就把那个变量 echo出来 ,比如echo ($pageCount);
 */
  function getPageInfo($url,$totalCount,$pageNo,$pageSize){
  
      $listStep=6; //这个代表多少个分页信息,你稍微想象下google的查询就可以了..中间的oo就是这个道理
      $pageInfo=""; //定义分页信息的变量,在程序下面将对它进行拼凑
      
      $pageCount  = (int) Math.ceil((double) $totalCount / $pageSize);//Math.ceil是向上取整,比如得到2.8,那么就是3,因为php是弱类型,
    																//所谓弱类型,就是隐士的数据类型,不用声明数据类型就使用,所以我们这里要强制转为int(																		//)整型类型
      $pageCount=1;
      if( $pageCount<10){   //这里是做优化处理,如果不明白正则表达式,你可以把下面的	//	echo("pageCount=".$pageCount);的注释取消看下,
	   			         //	就知道这样做的好处,因为php就算你强制转换为了int类型,比如小于10页,还是会显示类似08,07这样的格式,我们要得到的是直接一个8
     	$pageCount=preg_replace('/^0/', '', $pageCount);//这句话的意思是以0开头的整数,把0用''空串代替,这里设计正则表达式,可以参考网上资料
	//	echo("pageCount=".$pageCount);
      }
      
      if($pageCount<$pageNo){//假设记录总数小于传进来的页码,这种情况主要考虑,用户搞破坏,把传递进来的页码写的很大
          $pageNo=$pageCount;
      }
       
      if ($pageNo < 1){ //防止用户搞破坏,传递一个负数进来
         $pageNo = 1;
      }
      
     $listBegin =$pageNo -  $listStep / 2;//比如有1000条分页信息,因为我们之前规定了$listStep=6,就是每页只显示6个分页信息,注意,这里是分页信息	,
	 										//不是你在页面要显示的结果记录数,比如我们当前在50页,那么我们显示的分页信息是 48 49 50 51 52 53
											 // 这样的才叫分页信息,这样主要避免太多分页信息..这就是为什么不用一个for循环的缘故了
    
      $listEnd = $pageNo + $listStep/2;     //比如我们在50页,那么分页信息就显示到53页,和上面的注释结合起来看
     
      if($listEnd<$listStep){    //如果结束的分页信息小于我们每页要显示的分页信息,
           $listEnd=$listStep;
       }
      
      if ($listEnd > $pageCount){ //想想为什么会发生这种情况?主要是因为我们之前$listEnd = $pageNo + $listStep/2;  
                                //当传递进来的页码是1,也就是$pageNo=1,因为$listStep=6,那么$listEnd=4,刚好我们的记录数很少,1页就可以显示完了                                              //,就出现这样的情况了
           $listEnd = $pageCount + 1; //这里的加1,如果不理解,你跟下面的for循环结合起来就明白很多了
           $listBegin=$listEnd-$listStep;//重新计算下开始分页的信息.
       }
       if($listBegin < 1){ //总不能从负页数开始吧
          $listBegin = 1;
       } 
       
        $pageInfo="共<font color=red> ". $pageCount." </font>页 ";//开始拼凑分页信息
        if ($pageNo > 1){
                $pageInfo.=  "<a href='".$url ."&page=1'>首页</a> ";
               $pageInfo.=  "<a href='".$url ."&page=" .($pageNo - 1) . "'>上一页</a>";
           }else{
               $pageInfo.="首页 ";
               $pageInfo.="上一页";
        }
      
       for ( $i = $listBegin; $i < $listEnd; $i++){ //根据开始分页信息和结束分页信息,输出当前页的分页信息
       
                 if ($i != $pageNo){
                 	//特别注意这里,这里page前面直接用了&而不是?,是因为很多时候,我们还有其他要传递的参数,
                 	//比如showal.php?action=list这样,那么我们就很容易拼凑成showal.php?action=list&page=1这样的格式了,达到通用的效果
                 	//避免需要分页的页面都要分别写分页信息
                 	
                     $pageInfo.="<a href='".$url ."&page=" . $i . "'>[" . $i . "]</a>";
                 } else {
                       $pageInfo.="[<font color=red>" . $i . "</font>]";
                 }
            }
            if ($pageNo < $pageCount){
                  $pageInfo.= "<a href='". $url ."&page=" . ($pageNo + 1) . "'>下一页</a>  ";
                  $pageInfo.= "<a href='". $url ."&page=" . $pageCount ."'>末页</a>";
            }else{
               $pageInfo.="下一页";
               $pageInfo.="尾页";  
            }
        
         return $pageInfo; 
    }


?>

</body>

</html>

 

分享到:
评论

相关推荐

    php分页程序 小结

    php分页程序 小结

    PHP通用分页程序

    本文将深入探讨PHP分页的实现原理和具体步骤,并通过一个名为“小贤PHP通用分页程序”的实例进行详解。 1. **分页原理** 分页的基本思想是将大量数据分成多个小块(页),每次只加载一部分数据到前端展示,用户...

    小贤PHP通用分页程序 v1.0

    我在一些PHP论坛上经常看到不少PHP初学者对于PHP分页很头痛,所以我就抽一点时间将我所写的网站中 的分页功能给分离出来给广大PHP初学者做为参考或者使用。 程序的演示效果您可以登录到淘宝网寻宝客...

    小贤PHP通用分页程序

    【小贤PHP通用分页程序】是一个专门为PHP开发的实用工具,旨在帮助开发者轻松实现网页内容的分页显示。在网站开发中,当数据量过大时,一次性加载所有内容不仅会消耗大量服务器资源,也可能导致用户界面响应缓慢,...

    小贤PHP分页类程序

    我在一些PHP论坛上经常看到不少PHP初学者对于PHP分页很头痛,所以我就抽一点时间将我所写的网站中的 分页功能给分离出来给广大PHP初学者做为参考或者使用。 程序的演示效果您可以登录到[url=...

    PHP分页程序推荐下载

    本篇文章将深入探讨PHP分页程序的相关知识点,以及如何实现一个简洁实用的分页程序。 首先,理解分页的基本原理至关重要。分页的核心思想是通过限制每次请求的数据量,将大数据集分成若干个小部分,用户可以逐页...

    小贤PHP通用分页程序 v1.0.rar

    我在一些PHP论坛上经常看到不少PHP初学者对于PHP分页很头痛,所以我就抽一点时间将我所写的网站中的 分页功能给分离出来给广大PHP初学者做为参考或者使用。 程序的优点:可用于伪静态、静态和动态分页用,...

    基于PHP的小贤 PHP 通用分页程序.zip

    在实际应用中,开发者可能会使用一些现成的PHP分页类库,如PHP Pagination,PAGINATION等,这些库已经封装好了上述功能,只需简单配置即可使用。不过,"小贤 PHP 通用分页程序"可能是自定义实现,因此可能更符合特定...

    微信小程序分页asp版本接口

    在这个"微信小程序分页asp版本接口"的案例中,我们主要关注的是如何使用ASP(Active Server Pages)技术来构建服务于微信小程序的数据接口。 ASP是微软推出的一种服务器端脚本语言,用于动态网页的开发。在这个项目...

    php万能分页源码

    在PHP编程中,分页是网站开发中一个非常重要的功能,尤其当数据量大到无法一次性展示时。"php万能分页源码"提供了一种解决方案,它是一个灵活且可自定义的分页类,适用于各种场景。下面将详细阐述这个源码的工作原理...

    Zblog小程序(百度小程序、微信小程序、QQ小程序)开源源码升级

    php源码 zblog小程序(百度小程序、微信小程序、QQ小程序)开源源码升级 基于uniapp开发的多端zblog小程序,目前已兼容 百度、微信、QQ。 本次1.0.2版本升级如下: ...6.对小程序sitemap分页bug修改。

    php 分页控件

    PHP分页控件就是这样的一个工具,它简化了在PHP项目中实现高效、用户友好的分页过程。本文将深入探讨PHP分页控件的核心概念、工作原理以及如何在实际项目中运用。 首先,分页控件的主要作用是将大量数据分割成较小...

    PHP实例开发源码-小贤 PHP 通用分页程序.zip

    通过对这个源码的学习,开发者不仅可以掌握PHP分页的基本实现,还能了解到如何优化代码结构、提高程序的可维护性和可扩展性。对于初学者而言,这是一个极好的实践项目,有助于深入理解PHP编程和数据库操作;对于有...

    微信小程序-图片展示(完整带后台)小程序源码

    在这个“微信小程序-图片展示(完整带后台)小程序源码”项目中,我们将深入探讨如何利用微信小程序开发一个图片展示应用,并且该应用还配备了一个完整的后台管理系统。 首先,我们需要了解微信小程序的基本结构和...

    小贤PHP通用分页程序.rar

    我在一些PHP论坛上经常看到不少PHP初学者对于PHP分页很头痛,所以我就抽一点时间将我所写的网站中的 分页功能给分离出来给广大PHP初学者做为参考或者使用。 程序的演示效果您可以登录到寻宝客( target="_blank"&gt;...

    明仔简单PHP分页程序.7z

    "明仔简单PHP分页程序"是一个可能包含实现这一功能的源代码包。 该程序的核心思想是利用PHP处理数据库查询结果,将大量数据分成多个小部分(每页)来展示。以下是一些关键知识点: 1. **SQL查询与LIMIT子句**:在...

    PHP多功能分页类,功能强大,评价很高。

    在PHP开发中,分页是常见的需求,尤其是在处理大量数据时,为了提高用户体验,需要将结果集分割成多个页面展示。本压缩包提供了一个被高度评价的PHP多功能分页类,它具有强大的功能和灵活性,可以适应各种项目需求。...

    数据分页程序完全解决方案(含普通分页/分段分页/原始分页/since_id分页)

    后来, 主要是在微博应用出现后, 由于其信息变化很快, 而其特性为基于时间线增加数据, 这样, 基本的分页程序不能再满足需求了: a) 当获取下一页时, 数据集可能已经发生了很多变化, 翻页随时都可能导致数据重复或跳跃...

    微信小程序例子 下拉加载更多

    微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,专为移动端设计,方便开发者快速构建功能丰富的轻应用。在“微信小程序例子 - 下拉加载更多”这个项目中,我们主要探讨的是如何在微信小程序中实现下拉刷新...

    微信小程序-图片站微信小程序源码

    图片站微信小程序源码(带后端)是一款带php后端的图片收集浏览小程序demo源码。其具有以下特色功能: 1、图片瀑布流展示,分两栏。 2、点击图片,浏览高清图,小程序提供了预览图片组功能 3、分页加载,数据源从...

Global site tag (gtag.js) - Google Analytics