首页 >后端开发 >php教程 >PHP封装分页函数实现文本分页和数字分页_PHP

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

WBOY
WBOY原创
2016-05-31 19:29:00919浏览

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

// 分页分装<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 < $pageTotal; $i++)<br />        { <br />          if($page == ($i+1))<br />          {<br />            echo '<li><a href="blogfriends.php&#63;page='.($i+1).'">'.($i+1).'</a></li>';<br>          }<br>          else<br>          {<br>            echo '<li><a href="blogfriends.php&#63;page='.($i+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>            echo '<li>尾页 | </li>';<br>          }<br>          else<br>          {<br>            echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'&#63;page='.($page + 1).'">下一页 </a>| </li>';<br>            echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'&#63;page='.($pageTotal).'">尾页 </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 < 0 || !is_numeric($page))<br />    {<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);
<&#63;php <br />  // 分页类型 1是数字分页 2是文本分页<br />   paging(2);<br />&#63;>  

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

<&#63;php <br />    // 分页类型 1是数字分页 2是文本分页<br />    paging(1);<br /> &#63;>  

数字分页如下:

样式自行调整。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn