当前位置: 首页 > 图文教程 > 网络编程 > PHP > php实现的仿阿里巴巴实现同类产品翻页

PHP
书评: PHP和ORACLE基础手册
最小化数据传输――在客户端存储数据
玩转虚拟域名◎+
DOMXML: Expat之外的另一选择
SQLite数据库安全
fckeditor用javascript创建
phplib7.2中文汉化版及调用示例
SQLite语法备忘录
将Oracle 10g内置的安全特性用于PHP
PHP5 & Web Services 系统架构图
解决PHP startup: Unable to load dynamic library的错误
PHP and Web Services
深入研究表单提交方式:GET/POST
php5中XML-RPC函数的使用
一 php与XML、XSLT、Mysql的结合运用,安装篇
二 php与XML、XSLT、Mysql的结合运用,代码篇
设计模式汇总
PHP5的异常处理机制
使用PHP5创建图形巧法(一)
使用PHP5创建图形巧妙方法(二)

PHP 中的 php实现的仿阿里巴巴实现同类产品翻页


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 146 ::
收藏到网摘: n/a

当前页左边的页码为最新的产品,按更新时间呈升序排列;右边的页码为早期的产品, 按更新时间呈降序排列。 如果左边的记录条数小于$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;
}
};
?>