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 相关文章推荐
PHP 程序员也要学会使用“异常”
Jun 16 PHP
Base64在线编码解码实现代码 演示与下载
Jan 08 PHP
php在文件指定行中写入代码的方法
May 23 PHP
深入php之规范编程命名小结
May 15 PHP
处理单名多值表单的详解
Jun 08 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
magento后台无法登录解决办法的两种方法
Dec 09 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
yii2的restful api路由实例详解
May 14 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 PHP
laravel 框架执行流程与原理简单分析
Feb 01 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 header()函数常用方法总结
2014/04/11 PHP
php blowfish加密解密算法
2016/07/02 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
JQuery each打印JS对象的方法
2013/11/13 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
2019/01/09 jQuery
Vue 基于 vuedraggable 实现选中、拖拽、排序效果
2020/05/18 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
python2和python3在处理字符串上的区别详解
2019/05/29 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
Django接收自定义http header过程详解
2019/08/23 Python
python网络编程之五子棋游戏
2020/05/14 Python
Python实现数字的格式化输出
2020/08/01 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
Html5自定义字体解决方法
2019/10/09 HTML / CSS
世嘉游戏英国官方商店:SEGA Shop UK
2019/09/20 全球购物
献爱心捐款倡议书
2014/05/14 职场文书
会计求职信范文
2014/05/24 职场文书
法学院毕业生求职信
2014/06/25 职场文书
村安全生产责任书
2014/08/25 职场文书
党性教育心得体会
2014/09/03 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2015大学生自我评价范文
2015/03/03 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
西游记读书笔记
2015/06/25 职场文书
小学生教师节广播稿
2015/08/19 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
7个你应该知道的JS原生错误类型
2021/04/29 Javascript