热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP中常用的分页类总结

分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互联网上,分页是一般用于搜索结果或是浏览全部信息php基本分页&l

分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互联网上,分页是一般用于搜索结果或是浏览全部信息

php基本分页

 $totalpages) {
    // set current page to last page
    $currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
    // set current page to first page
    $currentpage = 1;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $rowsperpage;
// get the info from the db
$sql = "SELECT id, number FROM numbers LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
// while there are rows to be fetched...
while ($list = mysql_fetch_assoc($result)) {
    // echo data
    echo $list[&#39;id&#39;] . " : " . $list[&#39;number&#39;] . "";
} // end while
/****** build the pagination links ******/
// range of num links to show
$range = 3;
// if not on page 1, don&#39;t show back links
if ($currentpage > 1) {
    // show << link to go back to page 1
    echo " << ";
    // get previous page num
    $prevpage = $currentpage - 1;
    // show < link to go back to 1 page
    echo " < ";
} // end if
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
    // if it&#39;s a valid page number...
    if (($x > 0) && ($x <= $totalpages)) {
        // if we&#39;re on current page...
        if ($x == $currentpage) {
            // &#39;highlight&#39; it but don&#39;t make a link
            echo " [$x] ";
            // if not current page...
            
        } else {
            // make it a link
            echo " $x ";
        } // end else
        
    } // end if
    
} // end for
// if not on last page, show forward and last page links
if ($currentpage != $totalpages) {
    // get next page
    $nextpage = $currentpage + 1;
    // echo forward link for next page
    echo " > ";
    // echo forward link for lastpage
    echo " >> ";
} // end if
/****** end build pagination links ******/
?>

先看一个常用的php分页类

 1) {
    $pagination.= "";
    //previous button
    if ($page > 1) $pagination.= " previous";
    else $pagination.= " previous";
    //pages
    if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
    {
        for ($counter = 1; $counter <= $lastpage; $counter++) {
            if ($counter == $page) $pagination.= "$counter";
            else $pagination.= "$counter";
        }
    } elseif ($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
    {
        //close to beginning; only hide later pages
        if ($page < 1 + ($adjacents * 2)) {
            for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) {
                if ($counter == $page) $pagination.= "$counter";
                else $pagination.= "$counter";
            }
            $pagination.= "...";
            $pagination.= "$lpm1";
            $pagination.= "$lastpage";
        }
        //in middle; hide some front and some back
        elseif ($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
            $pagination.= "1";
            $pagination.= "2";
            $pagination.= "...";
            for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
                if ($counter == $page) $pagination.= "$counter";
                else $pagination.= "$counter";
            }
            $pagination.= "...";
            $pagination.= "$lpm1";
            $pagination.= "$lastpage";
        }
        //close to end; only hide early pages
        else {
            $pagination.= "1";
            $pagination.= "2";
            $pagination.= "...";
            for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
                if ($counter == $page) $pagination.= "$counter";
                else $pagination.= "$counter";
            }
        }
    }
    //next button
    if ($page < $counter - 1) $pagination.= "next ";
    else $pagination.= "next ";
    $pagination.= "
n"; } ?>     实例 totalNum = $count; //总记录数         $this->pageSize = $size; //每页大小         $this->pageNo = $pageNo;         //计算总页数         $this->pageCount = ceil($this->totalNum / $this->pageSize);         $this->pageCount = ($this->pageCount <= 0) ? 1 : $this->pageCount;         //检查pageNo         $this->pageNo = $this->pageNo == 0 ? 1 : $this->pageNo;         $this->pageNo = $this->pageNo > $this->pageCount ? $this->pageCount : $this->pageNo;         //计算偏移         $this->offset = ($this->pageNo - 1) * $this->pageSize;         //计算是否有上一页下一页         $this->hasPrePage = $this->pageNo == 1 ? false : true;         $this->hasNextPage = $this->pageNo >= $this->pageCount ? false : true;         $this->pageData = $pageData;         $this->jsFunction = $jsFunction;     }     /**      * 分页算法      * @return      */     private function generatePageList() {         $pageList = array();         if ($this->pageCount <= 9) {             for ($i = 0; $i < $this->pageCount; $i++) {                 array_push($pageList, $i + 1);             }         } else {             if ($this->pageNo <= 4) {                 for ($i = 0; $i < 5; $i++) {                     array_push($pageList, $i + 1);                 }                 array_push($pageList, -1);                 array_push($pageList, $this->pageCount);             } else if ($this->pageNo > $this->pageCount - 4) {                 array_push($pageList, 1);                 array_push($pageList, -1);                 for ($i = 5; $i > 0; $i--) {                     array_push($pageList, $this->pageCount - $i + 1);                 }             } else if ($this->pageNo > 4 && $this->pageNo <= $this->pageCount - 4) {                 array_push($pageList, 1);                 array_push($pageList, -1);                 array_push($pageList, $this->pageNo - 2);                 array_push($pageList, $this->pageNo - 1);                 array_push($pageList, $this->pageNo);                 array_push($pageList, $this->pageNo + 1);                 array_push($pageList, $this->pageNo + 2);                 array_push($pageList, -1);                 array_push($pageList, $this->pageCount);             }         }         return $pageList;     }     /***      * 创建分页控件      * @param      * @return String     */     public function echoPageAsDiv() {         $pageList = $this->generatePageList();         $pageString = "";         if (!empty($pageList)) {             if ($this->pageCount > 1) {                 if ($this->hasPrePage) {                     $pageString = $pageString . "jsFunction . "(" . ($this->pageNo-1) . ") ">上一页";                 }                 foreach ($pageList as $k => $p) {                     if ($this->pageNo == $p) {                         $pageString = $pageString . "" . $this->pageNo . "";                         continue;                     }                     if ($p == - 1) {                         $pageString = $pageString . "...";                         continue;                     }                     $pageString = $pageString . "jsFunction . "(" . $p . ")\">" . $p . "";                 }                 if ($this->hasNextPage) {                     $pageString = $pageString . "jsFunction . "(" . ($this->pageNo + 1) . ")\">下一页";                 }             }         }         $pageString = $pageString . ("
");         return $pageString;     } } ?>

css代码

在php页面中的调用方法

echoPageAsDiv();


随意转载^^但请附上教程地址。


推荐阅读
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • 本文介绍了如何使用PHP代码将表格导出为UTF8格式的Excel文件。首先,需要连接到数据库并获取表格的列名。然后,设置文件名和文件指针,并将内容写入文件。最后,设置响应头部,将文件作为附件下载。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
author-avatar
村头的小路_157
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有