PHP函数实现分页含文本分页和数字分页

   2015-08-30 0
核心提示:分页功能是经常使用的一个功能,因此用PHP实现分页,文本分页和数字分页,对其以函数形式进行了封装

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

// 分页分装
/**
* $pageType 分页类型 1是数字分页 2是文本分页
* 可以将$pageTotal,$page,$total等数据作为参数传递,或者在paging作为全局变量(推荐)
*/
function paging($pageType)
{
global $pageTotal,$page,$total;
if($pageType == 1)
{
echo '<div id="pagenum">';
echo'<ul>';
for($i=0; $i < $pageTotal; $i++)
{ 
if($page == ($i+1))
{
echo '<li><a href="blogfriends.phppage='.($i+1).'" class="selected">'.($i+1).'</a></li>';
}
else
{
echo '<li><a href="blogfriends.phppage='.($i+1).'">'.($i+1).'</a></li>';
}
}
echo'</ul>';
echo'</div>';

}
else if($pageType == 2)
{
echo '<div id="pagetext">';
echo '<ul>';
echo '<li>'.$page.'/'.$pageTotal.'页 | </li>';
echo '<li>共有<strong>'.$total .'</strong>个会员 | </li>';
// 第一页
if($page == 1)
{
echo '<li>首页 | </li>';
echo '<li>上一页 | </li>';
}
else
{
// $_SERVER["SCRIPT_NAME"]获取当前的脚本名字,方便移植
// 也可以自定义常量,常量值和脚本文件名一致
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'">首页 </a>| </li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'page='.($page - 1).'">上一页 </a>| </li>';
}
// 最后一页
if($page == $pageTotal)
{
echo '<li>下一页 | </li>';
echo '<li>尾页 | </li>';
}
else
{
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'page='.($page + 1).'">下一页 </a>| </li>';
echo '<li><a href="'.$_SERVER["SCRIPT_NAME"].'page='.($pageTotal).'">尾页 </a>| </li>';
} 
echo '</ul>';
echo '</div>';
}
}

参数解释:

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

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

// 分页参数分装
/**
* $sql 可以 获取数据总数的一个sql语句
* $size 每一页显示条数
*/
function pageParam($sql,$size)
{
// 将所有涉及的参数设置全局变量
// $pagestart 某一页从哪里开始
// $total 总记录数 $page 某一页 $pageTotal 总页数
global $pagestart,$pagesize,$total,$page,$pageTotal;
$pagesize = $size;
// 获取数据总数
$total = mysql_num_rows(queryDB($sql));

// 错误处理,先判断是否存在
if(isset($_GET['page']))
{
// 具体某一页
$page = $_GET['page'];
// 判断是否为空(0是空)/小于0/是否是数字
if(empty($page) || $page < 0 || !is_numeric($page))
{
$page = 1;
}
else
{
$page = intval($page); //取整,防止小数出现
}

}
else
{
// 初始化显示第1页
$page = 1;
}

// 数据库清零
if($total == 0)
{
// 设置为1
$pageTotal = 1;
}
else
{
// 分页的总页数(进一取整处理)
$pageTotal = ceil($total / $pagesize);
}

// 页数大于总页码$total
if($page > $pageTotal)
{
$page = $pageTotal;
}
// 当页从某一条记录开始
$pagestart = ($page - 1) * $pagesize;
}

参数解释:

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

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

/**
* 第一个 可以 获取数据总数的一个sql语句
* 第二个 每一页显示条数
*/
pageParam("select userid from user",2);

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

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

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

数字分页如下:

PHP函数实现分页含文本分页和数字分页

样式自行调整。

 
标签: 分页
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • asp.net mvc多条件+分页查询解决方案
    


            
asp.net mvc多条件+分页查询解决方案
    asp.net mvc多条件+分页查询解决方案
    http://www.cnblogs.com/nickppa/p/3232535.html开发环境vs2010css:bootstrapjs:jquery    bootstrap paginator原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了MVC多条件+分页查询因为美工不是很好,所以用的是
    02-09
  • 微信小程序之评分页面 微信小程序在哪评分
    微信小程序之评分页面 微信小程序在哪评分
    首先给大家看看做好的效果图: 一、接下来我们说一下评分这个功能:实际上就是一个简单的js,首先我们遍历出小星星,此时默认给的五星好评,在给他们一个点击事件,当点击时,我们获取到当前点击的是第几颗;代码如下:var index = e.currentTarget.dataset.
    02-09
  • 如何使用C#在Excel中插入分页符 如何使用cmd
    如何使用C#在Excel中插入分页符 如何使用cmd
    如何使用C#在Excel中插入分页符在日常办公中,我们经常会用到Excel文档来帮助我们整理数据。为了方便打印Excel工作表,我们可以在Excel中插入分页符。各种处理软件一般都会自动按照用户所设置页面的大小自动进行分页,以美化文档的视觉效果、简化用户的操作,
    02-09
  • 一个DataGrid分页控件,c#写的,再vb.net中调用,
    using System;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;namespace wxc{ /// summary ///作者:kasafuma /// /summary [DefaultProperty("Text"),  ToolboxData("{0}:Pager runat=server/{0}:Pager")] public
    02-09
  • 简单的PHP+SMARTY分页类 php分页思路
    类的代码  ?   模版代码   调用范例 ?   
    02-09
  • 分页组件 PHP5+MSSQL
    ?class pagerecordset{private $cn;private $rs;private $totalpage = 0;private $totalrecord = 0;private $bpos = 1;private $epos = 1;private $row = null;private $firstpage = 1;private $prevpage = 1;private $nextpage = 1;private $lastpage = 1;pu
    02-09
  • PHP Excel 下载数据,并分页下载
    直接上代码: 调用下载Excel:$total=$duoduo-count(MOD.' as a',$where);$objExcel= SelfExcelObject();//导出if($total !=false$total 0in_array($_GET['otype'], array('tradelist', 'mall_order'))) {$result = localSettionData($objExcel,$
    02-09
  • ASP.Net分页控件发布(转) asp.net repeater分
    由于.net自带的分页功能极其死板,自定义性不强不能满足需求,俺花了一个多星期的时间 写成的一个.net分页控件。   特性:  1、支持datagrid,datalist等分种数据显示控件,理论上只要有datasource的控件都可以  2、支持url方式分页,url分页的每一页都可
    02-09
  • 动态加载Asp.net分页控件
    在asp.net中动态加载控件比较简单,这里我讲得是对用户控件的加载,比较典型的就是被加载的用户控件里面包含回发事件,在回传回来的时候需要保持新的数据。         先来构建分页用户控件,由于前面几篇文章都在讲这些东西,所以就直接拿过来改了改,
    02-09
  • 小程序实现分页查询列表的模板 微信小程序分页
    本文实例为大家分享了小程序实现分页查询列表的模板,供大家参考,具体内容如下list.wxmlview class="home-main"    !-- 搜索 --    view class="search-bar"        view class="search-bar-form"            image class="search-img"
点击排行