php实现的仿阿里巴巴实现同类产品翻页
php实现的仿阿里巴巴实现同类产品翻页
发布时间:2016-12-29 来源:查字典编辑
摘要:如果左边的记录条数小于$space(页码区段)的值,页码$start从1开始向右增值。如果左则的记录条数多于$left(左右各显示页数)的值...

如果左边的记录条数小于$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教程学习
编程开发子分类