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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
使用PHP获取网络文件的实现代码
Jan 01 PHP
支持数组的ADDSLASHES的php函数
Feb 16 PHP
PHP函数学习之PHP函数点评
Jul 05 PHP
php切割页面div内容的实现代码分享
Jul 31 PHP
php去除换行(回车换行)的三种方法
Mar 26 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
PHP递归遍历多维数组实现无限分类的方法
May 06 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
PHP生成指定范围内的N个不重复的随机数
Mar 18 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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/07/13 PHP
PHP 时间日期操作实战
2011/08/26 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
php字符集转换
2017/01/23 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
2017/02/15 PHP
php基于数组函数实现关联表的编辑操作示例
2017/07/04 PHP
PHP写API输出的时用echo的原因详解
2019/04/28 PHP
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
python支持断点续传的多线程下载示例
2014/01/16 Python
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
详解python3中的真值测试
2018/08/13 Python
python生成器与迭代器详解
2019/01/01 Python
python之验证码生成(gvcode与captcha)
2019/01/02 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
Python matplotlib实时画图案例
2020/04/23 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
服务员自我评价
2014/01/25 职场文书
高考备战决心书
2014/03/11 职场文书
捐款活动总结
2014/08/27 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
python树莓派通过队列实现进程交互的程序分析
2021/07/04 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript
关于python3 opencv 图像二值化的问题(cv2.adaptiveThreshold函数)
2022/04/04 Python