php实现的仿阿里巴巴实现同类产品翻页


Posted in PHP onDecember 11, 2009

如果左边的记录条数小于$space(页码区段)的值,页码$start从1开始向右增值。如果左则的记录条数多于$left(左右各显示页数)的值,$start将从左边记录数减去$left值开始记数。

<?php 
/** 实现同类产品翻页 **/ class pager 
{ 
protected $space; 
protected $left; 
protected $DB; 
protected $pageName; 
public function setSpace($num) { 
$this->space = $num; 
$this->left = ceil(($num-1)/2); 
} 
public function setDB(&$db) { 
$this->DB = $db; 
} 
public function setPageName($pageName) { 
$this->pageName = $pageName; 
} 
public function getPages($catid, $exptime) { 
$fields = array("`id`,`title`"); 
$left = array(">" => array("exptime"=>$exptime), "memberid" => gs(_MEM_PREFIX_ . "memberid"), "catid"=>$catid); 
$right = array("<" => array("exptime"=>$exptime), "memberid" => gs(_MEM_PREFIX_ . "memberid"), "catid"=>$catid); 
$leftCount = $this->DB->getCount($left); 
if($leftCount <= $this->left) { 
$star = 1; 
$leftLimit = "LIMIT" . $leftCount; 
$rightLimit = "LIMIT " . ($this->space-$leftCount); 
} 
else { 
$start = $leftCount - $this->left; 
$leftLimit = "LIMIT " . $this->left; 
$rightLimit = $leftLimit; 
} 
$list1 = $this->DB->findAll($left, array("exptime"=>"ASC"), $leftLimit, $fields); 
$list2 = $this->DB->findAll($right, array("exptime"=>"DESC"), $rightLimit, $fields); 
/** 上一页链接 **/ 
$c = count($list1); 
if($c > 1) { 
$url = $this->pageName."-".$list1[$c]['id'].".html"; 
$pages = "<a href=\"{$url}\">上一页</a><ol>"; 
}elseif($c == 1) { 
$url = $this->pageName."-".$list1[0]['id'].".html"; 
$pages = "<a href=\"{$url}\">上一页</a><ol>"; 
}else { 
$pages = ""; 
} 

/** 当前页的左边内容 **/ 
foreach($list1 as $item) { 
$url = $this->pageName."-".$item['id'].".html"; 
$pages .= "<li><a href=\"{$url}\">{$start}</a></li>"; 
$start++; 
} 
$pages .= "<li><b>{$leftCount}</b></li>"; 
$start++; 
/** 当前页面右边的内容 **/ 
foreach($list1 as $item) { 
$url = $this->pageName."-".$item['id'].".html"; 
$pages .= "<li><a href=\"{$url}\">{$start}</a></li>"; 
$start++; 
} 
/** 下一页的链接 **/ 
$c = count($list2); 
if($c > 0) { 
$url = $this->pageName."-".$list2[0]['id'].".html"; 
$pages .= "<a href=\"{$url}\">下一页</a><ol>"; 
}else { 
$pages .= ""; 
} 
return $pages; 
} 
}; 
?>
PHP 相关文章推荐
PHP5+UTF8多文件上传类
Oct 17 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
php实现refresh刷新页面批量导入数据的方法
Dec 23 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
php实现的验证码文件类实例
Jun 18 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 PHP
php的扩展写法总结
May 14 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 PHP
解决在laravel中auth建立时候遇到的问题
Oct 15 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 #PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 #PHP
phpmyadmin导入(import)文件限制的解决办法
Dec 11 #PHP
php smarty模版引擎中的缓存应用
Dec 11 #PHP
php5 图片验证码实现代码
Dec 11 #PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 #PHP
一个比较简单的PHP 分页分组类
Dec 10 #PHP
You might like
php图片验证码代码
2008/03/27 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
JS实现的简单分页功能示例
2018/08/23 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
python 多进程通信模块的简单实现
2014/02/20 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
城市观光通行证:The Sightseeing Pass
2018/04/28 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
广州盈通面试题
2015/12/05 面试题
市场营销个人求职信范文
2014/02/02 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
总经理聘用协议书
2015/09/21 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python