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写的小东西
Dec 06 PHP
php实现快速排序法函数代码
Aug 27 PHP
php FLEA中二叉树数组的遍历输出
Sep 26 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
Jul 01 PHP
CI(CodeIgniter)框架配置
Jun 10 PHP
crontab无法执行php的解决方法
Jan 25 PHP
smarty自定义函数用法示例
May 20 PHP
php组合排序简单实现方法
Oct 15 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
Yii2框架自定义类统一处理url操作示例
May 25 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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()函数使用说明
2008/07/10 PHP
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
ThinkPHP文件缓存类代码分享
2015/04/22 PHP
php cookie 详解使用实例
2016/11/03 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
Javascript基础知识盲点总结之函数
2016/05/15 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
微信小程序 ES6Promise.all批量上传文件实现代码
2017/04/14 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
2020/12/30 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
python中if嵌套命令实例讲解
2021/02/25 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
编写strcpy函数
2014/06/24 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
《毛主席在花山》教学反思
2014/04/20 职场文书
小学数学教研活动总结
2014/07/01 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
2015年三年级班主任工作总结
2015/05/21 职场文书
步步惊心观后感
2015/06/12 职场文书
教务处教学工作总结
2015/08/10 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL