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 中的一些经验积累
Oct 09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
Oct 09 PHP
php开发中的页面跳转方法总结
Apr 26 PHP
用PHP生成excel文件到指定目录
Jun 22 PHP
php函数连续调用实例分析
Jul 30 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
PHP获取二维数组中某一列的值集合
Dec 25 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
smarty的section嵌套循环用法示例
May 28 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
PHP环形链表实现方法示例
Sep 15 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 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/12/05 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
2012/09/14 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
jquery实现聊天机器人
2020/02/08 jQuery
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
浅谈Python浅拷贝、深拷贝及引用机制
2016/12/15 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
flask框架单元测试原理与用法实例分析
2019/07/23 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
python 字典访问的三种方法小结
2019/12/05 Python
python第三方库学习笔记
2020/02/07 Python
python 实现aes256加密
2020/11/27 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
高中生活自我鉴定
2014/01/18 职场文书
给水工程专业毕业生自荐信
2014/01/28 职场文书
人事主管岗位职责
2014/01/30 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB