zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

PHP 实现 阿里巴巴 翻页
2023-06-13 09:14:15 时间
如果左边的记录条数小于$space(页码区段)的值,页码$start从1开始向右增值。如果左则的记录条数多于$left(左右各显示页数)的值,$start将从左边记录数减去$left值开始记数。
复制代码代码如下:

<?php
/**实现同类产品翻页**/

classpager
{
protected$space;
protected$left;
protected$DB;
protected$pageName;

publicfunctionsetSpace($num){
$this->space=$num;
$this->left=ceil(($num-1)/2);
}

publicfunctionsetDB(&$db){
$this->DB=$db;
}

publicfunctionsetPageName($pageName){
$this->pageName=$pageName;
}

publicfunctiongetPages($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="<ahref=\"{$url}\">上一页</a><ol>";
}elseif($c==1){
$url=$this->pageName."-".$list1[0]["id"].".html";
$pages="<ahref=\"{$url}\">上一页</a><ol>";
}else{
$pages="";
}


/**当前页的左边内容**/
foreach($list1as$item){
$url=$this->pageName."-".$item["id"].".html";
$pages.="<li><ahref=\"{$url}\">{$start}</a></li>";
$start++;
}

$pages.="<li><b>{$leftCount}</b></li>";
$start++;

/**当前页面右边的内容**/
foreach($list1as$item){
$url=$this->pageName."-".$item["id"].".html";
$pages.="<li><ahref=\"{$url}\">{$start}</a></li>";
$start++;
}

/**下一页的链接**/
$c=count($list2);
if($c>0){
$url=$this->pageName."-".$list2[0]["id"].".html";
$pages.="<ahref=\"{$url}\">下一页</a><ol>";
}else{
$pages.="";
}

return$pages;
}
};
?>