php通用分页类代码实例

php教程通用分页类代码

*/
class dividepage  //分页类
{
 private $page ; //当前页
 private $total ; //总的记录数
 private $pagesize;  //每页的记录数
 private $prepage ;  //前一页
 private $nextpage; //后一页
 private $lastpage ; //最后一页
 private $url;   //url
 private $start; //当页显示记录数开始条数
 private $endp; //当页显示记录数结束条数
 private $first; //查询开始数

//构造函数
 public function __construct($total,$pagesize,$url)
 {
  $this->total = intval($total);
  $this->pagesize = intval($pagesize);
  $this->url = $url;
  $this->init();
 }

//初始化分页信息
 public function init()
 {
  $parse_url = parse_url($this->url);
  //print_r($parse_url);
  $url_query = $parse_url['query'];
  if(empty($url_query))
  {
   $this->page = 1;
   $this->url = $this->url.'?page=';
  }
  else
  {
   preg_match("/(^|&)page=(.*)(&|$)/ui",$url_query,$temp);
   $this->page = intval($temp[2]);
   $this->url=preg_replace("/page=(.*)/","page=",$this->url);
  }

$this->lastpage = ceil($this->total/$this->pagesize) ? ceil($this->total/$this->pagesize) :1 ;
  //最后一页的页码,总数/每页数向上取整,如果总数为0,则最后一页为第一页.
  $this->page = min($this->lastpage,$this->page)>0 ? min($this->lastpage,$this->page) :1 ;
  //当前页大于最后一页,则取最后一页为当前页,不大于0,则取1为当前页.
  $this->first = ($this->page - 1)*$this->pagesize ; //计算sql查询语句起始位置
  $this->prepage = $this->page-1 ;                       //前一页
  $this->nextpage = $this->page+1 ;      //后一页
  $this->start = $this->total?$this->first +1:0;  //当页记录开始编号
  $this->endp = min($this->total,$this->page*$this->pagesize);//当页记录结束编号
 }

public function getpageinfo()  //取得当前页基本信息,如:显示第 1-5 条记录,共 9 条记录。
 {
  return '<span class="pageinfostyle">显示第<span class = "numberstyle">'.$this->start.'-'.$this->endp.'</span>条记录,共<span class = "numberstyle">'.$this->total.'</span>条记录。</span>';
 }

public function getpagenav()//取得分页导航如:首页 上一页 下一页 尾页
 {
  $nav = "";
  if($this->lastpage == 1)
  {
   return $nav;
   break;
  }
  $nav = '<a href ="'.$this->url.'1" class = "navpagestyle" >首页</a>';
  if($this->prepage)
  {
   $nav.= '<a href = "'.$this->url.$this->prepage.'" class = "navpagestyle">上一页</a>';
  }
  else
  {
   $nav.= '<a  class = "navpagestyle">上一页</a>';
  }

if($this->nextpage <=$this->lastpage)
  {
   $nav.= '<a href = "'.$this->url.$this->nextpage.'" class = "navpagestyle">下一页</a> ';
  }
  else
  {
   $nav.= '<a class = "navpagestyle">下一页</a>';
  }
  $nav.= '<a href = "'.$this->url.$this->lastpage.'" class = "navpagestyle" >尾页</a>';
  return $nav;
 }

public function getjumpnav()  //下拉跳转分页
 {
  $nav = '<span class = "pageinfostyle">到第<select name= "jumpnav" size="1" class = "jumpnav" onchange ='window.location = "'.$this->url.'"+this.value'>'."n";
  for($i=1 ; $i<=$this->lastpage ; $i++)
  {
   if($i==$this->page)
   {
    $nav.= '<option value ="'.$i.'" selected>'.$i.'</option>'."n";
   }
   else
   {
    $nav.='<option value = "'.$i.'">'.$i.'</option>'."n";
   }

}
  $nav.='</select>页,共<span class= "numberstyle">'.$this->lastpage.'</span>页</span>';
  return $nav;
 }

public function getlimit()
 {
  return $this->first.",".$this->pagesize;
 }

public function getallnav()  //获取导航
 {
 return $this->getpageinfo().$this->getpagenav().$this->getjumpnav();
 }
}

//使用实例:
$sql1 = mysql教程_query("select * from sun_message");
$total=mysql_num_rows($sql1);//查询到的数据的总条数
$pagesize = 5;//每页显示的记录条数
$url = $_server['request_uri'];//请求的uri

$pageclass = new dividepage($total, $pagesize,$url); //创建分页类,(类能自动初始化)
$limit =$pageclass->getlimit();//取得当前页要显示的记录开始序号和每页显示条数,如:0, 5(显示从0开始的5条记录)
echo $dividepageclass->getallpagenav();//显示所有分页导航条,如:显示第11-13条记录,共13条记录。首页 上一页 下一页 尾页 到第 1 页,共 3 页

$sql2 = "select * from sun_message order by mid desc limit {$limit}"; //分页内容输出
$result=mysql_query($sql);
while($row=mysql_fetch_array($result))
{
 echo "<hr><b>".$row[title]." | ".$row[author];
}

时间: 2024-09-29 23:54:33

php通用分页类代码实例的相关文章

java开发中通用分页类代码

java开发中通用分页类代码 在java中要分页我们必须要有数据库教程,所以我们先准备下数据库,其数据库脚步如下: --以下是创建数据库和数据库表以及向数据库插入数据   use master  Go  if exists(select * from sysdatabases where name='pagination')  drop database pagination  Go  create database pagination  Go  use pagination  Go  cre

php通用分页类代码

   代码如下 复制代码 class dividepage{//分页类  private $total;//要显示的总记录数  private $url;//请求的url地址  private $displaypg;//每页显示的记录数,默认为每页显示10条记录  private $page;//当前页码  private $lastpg;//总页数,即最后一页的页码  private $prepg;//前一页  private $nextpg;//后一页  private $firstcoun

.Net通用分页类 存储过程分页版

CODE: using System; using System.Collections.Generic; using System.Text; /**//// <summary> /// .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择) /// 作者:启程 www.letwego.cn /// 可用于任意用途,请保留作者信息,谢谢! /// </summary> namespace letwego.cn {     public class PageSt

PHP中codeigniter文件上传类代码实例

  codeigniter文件上传类代码实例 文件上传类 CodeIgniter 的文件上传类允许文件被上传.您可以设置指定上传某类型的文件及指定大小的文件. 处理过程 上传文件普遍的过程: 一个上传文件用的表单,允许用户选择一个文件并上传它. 当这个表单被提交,该文件被上传到指定的目录. 同时,该文件将被验证是否符合您设定的要求. 一旦文件上传成功,还要返回一个上传成功的确认窗口. 这里有一个简短的教程来显示这个过程.此后你将会找到相关的参考信息. 创建上传表单 运用文本编辑器创建一个名为up

ASP通用分页类

分页 一.类的属性.方法 这是一个ASP通用分页类.你可以用它方便的给记录集分页,当然在网上有许多的分页类和分页函数.本分页主要有GetConn.GetRS.SQL.URL.CSSFile.FldName.FldNote.FldWidth.FldAlign.ShowPageType.TleFTColor.TleWidth.PageSize.ShowWidth.Init.Pages.ShowData.Close等属性和方法. 1.GetConn属性:用来获取一个已创建的Connection对象.

两款超php分页类代码

两款超php教程分页类代码 <?php  /**  * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格.  * 2.0增加功能:支持自定义风格,自定义样式,同时支持php4和php5,  * example:  * 模式四种分页模式:  * require_once('../libs/classes/page.class.php');  * $page=new page(array('total'=>1000,'perpage'=>20)

asp 通用分页类

<%@LANGUAGE = "VBScript" CODEPAGE="936"%> <%Option Explicit%> <!--#include file="Cls_PageView.asp"--> Class Cls_PageView  Private sbooInitState  Private sstrPageUrl  Private sstrPageVar  Private sstrSql  Pri

java分页类代码

java分页类代码 首先,最主要的一个类是 pageview ,其中封装了构造一个页面所需全部信息.如下: public class pageview<t> {     /** 分页数据 **/     private list<t> records;     /** 页码开始索引和结束索引 **/     private pageindex pageindex;     /** 总页数 **/     private long totalpage = 1;     /** 每页显

PHP通用分页类page.php[仿google分页]_php实例

page.php 复制代码 代码如下: <?php /** ** 通用php分页类.(仿Google样式) ** 只需提供记录总数与每页显示数两个参数.(已附详细使用说明..) ** 无需指定URL,链接由程序生成.方便用于检索结果分页. ** 表单采用GET方法提交,可保证在诸如查询之,删除之类的操作时,不丢失URL参数 **/ class Pager{ //IE地址栏地址 var $url; //记录总条数 var $countall; //总页数 var $page; //分页数字链接 v