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
PHP聊天室技术
Oct 09 PHP
PHP页面间传递参数实例代码
Jun 05 PHP
用php将任何格式视频转为flv的代码
Sep 03 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
THINKPHP2.0到3.0有哪些改进之处
Jan 04 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
PHP共享内存用法实例分析
Feb 12 PHP
功能强大的PHP发邮件类
Aug 29 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 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读写文件的方法(生成HTML)
2006/11/27 PHP
PHP安全防范技巧分享
2011/11/03 PHP
windows7下安装php的php-ssh2扩展教程
2014/07/04 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
jQuery 中关于CSS操作部分使用说明
2007/06/10 Javascript
动态添加js事件实现代码
2009/03/12 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
JavaScript省市联动实现代码
2014/02/15 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
2016/12/05 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
ReactNative中使用Redux架构总结
2017/12/15 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
python3使用SMTP发送简单文本邮件
2018/06/19 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
python字典与json转换的方法总结
2020/12/28 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
采购经理岗位职责
2014/02/16 职场文书
青年志愿者活动总结
2014/04/26 职场文书
2014年科协工作总结
2014/12/09 职场文书
高三毕业评语
2014/12/31 职场文书
个人道歉信大全
2019/04/11 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python