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查询域名状态whois的类
Nov 25 PHP
PHP动态变静态原理
Nov 25 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
如何修改和添加Apache的默认站点目录
Jul 05 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
PHP随机数 C扩展随机数
May 04 PHP
PHP从二维数组得到N层分类树的实现代码
Oct 11 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP实现微信申请退款功能
Oct 01 PHP
PHP+mysql防止SQL注入的方法小结
Apr 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
德生PL450的电路分析和低放电路的改进办法
2021/03/02 无线电
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
JS闭包可被利用的常见场景小结
2017/04/09 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
关于Vue组件库开发详析
2018/07/01 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
详解Python中find()方法的使用
2015/05/18 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
keras实现多种分类网络的方式
2020/06/11 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
俄罗斯三星品牌商店:Samsungstore
2020/04/05 全球购物
我的网上商城创业计划书
2013/12/26 职场文书
党员实事承诺书
2014/03/26 职场文书
培训讲师岗位职责
2014/04/13 职场文书
宣传活动总结范文
2014/07/01 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
pytorch 使用半精度模型部署的操作
2021/05/24 Python
python随机打印成绩排名表
2021/06/23 Python
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
LeetCode189轮转数组python示例
2022/08/05 Python