>php教程 >php手册 >PHP封装分页函数实现文本分页和数字分页,

PHP封装分页函数实现文本分页和数字分页,

WBOY
WBOY원래의
2016-06-13 09:23:071176검색

PHP封装分页函数实现文本分页和数字分页,

最近,在项目中要用到分页。分页功能是经常使用的一个功能,所以,对其以函数形式进行了封装。

// 分页分装<br>/**<br>*  $pageType  分页类型 1是数字分页 2是文本分页<br>* 可以将$pageTotal,$page,$total等数据作为参数传递,或者在paging作为全局变量(推荐)<br>*/<br>function paging($pageType)<br>{<br>  global $pageTotal,$page,$total;<br>  if($pageType == 1)<br>  {<br>    echo '<div id="pagenum">';<br>      echo'<ul>';<br>        for($i=0; $i         { <br>          if($page == ($i+1))<br>          {<br>            echo '<li><a href="blogfriends.php?page='.(%24i+1).'">'.($i+1).'</a></li>';<br>          }<br>          else<br>          {<br>            echo '<li><a href="blogfriends.php?page='.(%24i+1).'">'.($i+1).'</a></li>';<br>          }<br>        }<br>      echo'</ul>';<br>    echo'</div>';<br><br>  }<br>  else if($pageType == 2)<br>  {<br>    echo '<div id="pagetext">';<br>      echo '<ul>';<br>        echo '<li>'.$page.'/'.$pageTotal.'页 | </li>';<br>        echo '<li>共有<strong>'.$total .'</strong>个会员 | </li>';<br>          // 第一页<br>          if($page == 1)<br>          {<br>            echo '<li>首页 | </li>';<br>            echo '<li>上一页 | </li>';<br>          }<br>          else<br>          {<br>            // $_SERVER["SCRIPT_NAME"]获取当前的脚本名字,方便移植<br>            // 也可以自定义常量,常量值和脚本文件名一致<br>            echo '<li>
<a href="'.%24_SERVER%5B" script_name>首页 </a>| </li>';<br>            echo '<li>
<a href="'.%24_SERVER%5B" script_name>上一页 </a>| </li>';<br>          }<br>          // 最后一页<br>          if($page == $pageTotal)<br>          {<br>            echo '<li>下一页 | </li>';<br>            echo '<li>尾页 | </li>';<br>          }<br>          else<br>          {<br>            echo '<li>
<a href="'.%24_SERVER%5B" script_name>下一页 </a>| </li>';<br>            echo '<li>
<a href="'.%24_SERVER%5B" script_name>尾页 </a>| </li>';<br>          }    <br>      echo '</ul>';<br>    echo '</div>';<br>  }<br>}

参数解释:

$pageTotal是总页数,$page是当前页,$total是从数据库中获取的数据总数;

为了简化,将参数全部封装

// 分页参数分装<br>/**<br>*  $sql  可以 获取数据总数的一个sql语句<br>* $size 每一页显示条数<br>*/<br>function pageParam($sql,$size)<br>{<br>  // 将所有涉及的参数设置全局变量<br>  // $pagestart 某一页从哪里开始<br>  // $total 总记录数  $page 某一页 $pageTotal 总页数<br>  global $pagestart,$pagesize,$total,$page,$pageTotal;<br>  $pagesize = $size;<br>  // 获取数据总数<br>  $total = mysql_num_rows(queryDB($sql));<br><br>  // 错误处理,先判断是否存在<br>  if(isset($_GET['page']))<br>  {<br>    // 具体某一页<br>    $page = $_GET['page'];<br>    // 判断是否为空(0是空)/小于0/是否是数字<br>    if(empty($page) || $page     {<br>      $page = 1;<br>    }<br>    else<br>    {<br>      $page = intval($page); //取整,防止小数出现<br>    }<br>    <br>  }<br>  else<br>  {<br>    // 初始化显示第1页<br>    $page = 1;<br>  }<br><br>  // 数据库清零<br>  if($total == 0)<br>  {<br>    // 设置为1<br>    $pageTotal = 1;<br>  }<br>  else<br>  {<br>    // 分页的总页数(进一取整处理)<br>    $pageTotal = ceil($total / $pagesize);<br>  }<br><br>  // 页数大于总页码$total<br>  if($page > $pageTotal)<br>  {<br>    $page = $pageTotal;<br>  }<br>  // 当页从某一条记录开始<br>  $pagestart = ($page - 1) * $pagesize;<br>}

参数解释:

$pagestart是当页从某一条记录开始,$pagesize是每页显示的记录数

在使用中,先调用pageParam,再调用paging

/**<br>* 第一个 可以 获取数据总数的一个sql语句<br>* 第二个 每一页显示条数<br>*/<br>pageParam("select userid from user",2);
  // 分页类型 1是数字分页 2是文本分页<br>   paging(2);<br>?>  

调用的位置根据具体情况选择,文本分页如下:

    // 分页类型 1是数字分页 2是文本分页<br>    paging(1);<br> ?>  

数字分页如下:

样式自行调整。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.