代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
PHP
】
PHP二级分页类,提供SQL数据二级分类
作者:
jamin25521
/ 发布于
2013/10/23
/
669
<?php //php翻页类,创建于2012-06-29,作者:jamin 功能:实现复杂的以10为标准的智能翻页,适用于有参数传递的二级分页,并可以提供SQL的二级分类查找功能 //使用方法:将文件引入,实例化类并赋予参数,实例化基本方法、方法一,输出方法二; /*使用案例 $page=new Page(1,1,"food.php","select * from `shop` where `food` like '%".trim($food)."%' order by `id` desc",page,food); $page->basicinfo(); $sql=$page->listinfo1(); 在页面页码位置输出<?php echo $page->listinfo2();?> */ class Page{ private $pageSize;//每一页多少行 private $nowPage;//当前页 private $pageCount;//总页码数 private $totalNum;//总行数 private $prePage;//上一页 private $nextPage; //下一页 private $nowUrl; //当前分页的文件名 private $sqlStr; //SQL语句 private $var_Get; //page变量 private $var_Item;//url二级分类参数 private $var_Item_Value;//url二级分类参数的值 /*构造函数,当Page类创建时自动为四个变量赋值*/ function __construct($pagesize,$nowpage,$nowurl,$sqlstr,$var_get,$var_item){ $this->pageSize = $pagesize; $this->nowPage = $nowpage; $this->nowUrl = $nowurl; $this->sqlStr = $sqlstr; $this->var_Get = $var_get; $this->var_Item = $var_item; $this->var_Item_Value = $_GET[$var_item]; } /*算法,用于判断是否获得浏览器参数*/ public function is_get(){ if($_GET[$this->var_Get]==true){ $var1=$_GET[$this->var_Get]; if(is_numeric($var1) && $var1>0 && $var1<($this->pageCount+1)){ $this->nowPage=$_GET[$this->var_Get]; } } } /*基本查询------------------------需要执行*/ public function basicinfo(){ // $result = DBHelper::ExecuteCommand($this->sqlStr); //PDO方法查询数据库 $result = mysql_query($this->sqlStr);//正常方法查询数据库 $this->totalNum = mysql_num_rows($result);//返回所有行数 $this->pageCount = (int)(($this->totalNum -1)/$this->pageSize)+1; //计算出一共有多少页 /*显示上下页*/ } /////////////////////////////////////////////////////////////////////////////////////////////////////////// /*方法一,用于处理分页的数据--------需要执行*/ public function listinfo1(){ $this->is_get(); $start=($this->nowPage-1)*$this->pageSize;//调整limit,确定每页要显示记录的开始位置和每页记录数 $sql=mysql_query("$this->sqlStr limit $start,$this->pageSize"); return $sql; } /*方法二,用于处理分页页次----------需要执行*/ public function listinfo2(){ $this->is_get(); $p=$this->nowPage; $t=$this->pageCount; /*固定项目*/ if($this->var_Item_Value==""){//如果二级为空,执行一级分页 $firstpage="<a href=$this->nowUrl?$this->var_Get=1>首页</a>"." "; if($p!=1){ $uppage="<a href=$this->nowUrl?$this->var_Get=".($p-1).">上一页</a>"." "; } if($p!=$t){ $nextpage="<a href=$this->nowUrl?$this->var_Get=".($p+1).">下一页</a>"." "; } $lastpage="<a href=$this->nowUrl?$this->var_Get=".$t.">最后一页</a>"." "; if($t<=10){//页面总数小于10 for($i=1;$i<=$t;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } }elseif($t>10){//页面总数小于10 if($p<6){//当前页小于6,不递增 for($i=1;$i<=10;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } }else{ if($p<=$t-5){//当前页在最后5页之前,递增 for($i=$p-4;$i<=$p+5;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } }else{//当前页在最后5页,不递增 for($i=$t-9;$i<=$t;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } } } } }else{//如果二级不为空,执行二级分类 $firstpage="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=1>首页</a>"." "; if($p!=1){ $uppage="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=".($p-1).">上一页</a>"." "; } if($p!=$t){ $nextpage="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=".($p+1).">下一页</a>"." "; } $lastpage="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=".$t.">最后一页</a>"." "; if($t<=10){//页面总数小于10 for($i=1;$i<=$t;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } }elseif($t>10){//页面总数小于10 if($p<6){//当前页小于6,不递增 for($i=1;$i<=10;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } }else{ if($p<=$t-5){//当前页在最后5页之前,递增 for($i=$p-4;$i<=$p+5;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } }else{//当前页在最后5页,不递增 for($i=$t-9;$i<=$t;$i++){ if($p!=$i){ $page_limit0="<a href=$this->nowUrl?$this->var_Item=$this->var_Item_Value&$this->var_Get=$i>[$i]</a>"; }else{ $page_limit0="<a>$i</a>"; } $page_limit1=$page_limit1.$page_limit0; } } } } } return "总数".$this->totalNum."条"." 页次".$p."/".$t." ".$firstpage.$uppage.$page_limit1.$nextpage.$lastpage; } //////////////////////////////////////////////////////////////////////////////////////////////////////////// } ?>
试试其它关键字
分页
同语言下
.
用net匹配并替换iOS标准的emoji表情符号
.
处理带Emoji表情的的字符串
.
获取微信昵称时 过滤特殊字符
.
通过判断上传文件的头字符来判断文件的类型
.
模拟百度URL加密解密算法
.
以太坊检查地址是否合法
.
实现crontab解析类
.
获取每个月的开始和结束时间
.
图片上传工具类
.
APP手机应用信息采集
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
jamin25521
贡献的其它代码
(
1
)
.
PHP二级分页类,提供SQL数据二级分类
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3