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中函数的形参与实参的问题说明
Sep 01 PHP
php学习笔记 面向对象的构造与析构方法
Jun 13 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
PHP实现的迷你漂流瓶
Jul 29 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
PHP三种方式实现链式操作详解
Jan 21 PHP
利用PHP扩展Xhprof分析项目性能实践教程
Sep 05 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 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字符串分割函数explode的实例代码
2013/02/07 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
使用Chrome浏览器调试AngularJS应用的方法
2015/06/18 Javascript
基于JavaScript实现动态创建表格和增加表格行数
2015/12/20 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
前端微信支付js代码
2016/07/25 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
vue按需加载组件webpack require.ensure的方法
2017/12/13 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
Python实现简单状态框架的方法
2015/03/19 Python
Python装饰器原理与用法分析
2018/04/30 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
详解Python sys.argv使用方法
2019/05/10 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
Python爬取网页信息的示例
2020/09/24 Python
HTML5标签与HTML4标签的区别示例介绍
2013/07/18 HTML / CSS
HTML5公共页面提取作为公用代码的方法
2020/06/30 HTML / CSS
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
轻化专业学生实习自我鉴定
2013/09/20 职场文书
员工辞职信范文
2015/03/02 职场文书
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python