上一篇下一篇功能的实现
模型层:注意:数据表的ID应为自动递增的情况下
public function newsBeforeAfter($url,$id,$cate_id){ //上一篇
$where=array(); $where[‘checks‘]=array(‘eq‘,1);//该条内容是否审核 $where[‘id‘]=array(‘lt‘,$id);//上一篇ID应该小于当前接收到的ID $where[‘cate_id‘]=array(‘eq‘,$cate_id);//分类ID $front=$this->where($where)->order(‘id desc‘)->limit(‘1‘)->find();//上一篇文章查出来 if($front){ $burl=$url."/id/".$front[‘id‘].‘/‘.‘cate_id‘.‘/‘.$front[‘cate_id‘];//成功!上一篇文章跳转地址 }else{ $burl="javascript:void(0);"; }
//下一篇
$data=array(); $data[‘id‘]=array(‘gt‘,$id);//下一篇的ID应该大于当前接收的id $data[‘checks‘]=array(‘eq‘,1); $data[‘cate_id‘]=array(‘eq‘,$cate_id); $after=$this->where($data)->order(‘id asc‘)->limit(‘1‘)->find();//下一篇文章查出来 if($after){ $aurl=$url."/id/".$after[‘id‘].‘/‘.‘cate_id‘.‘/‘.$after[‘cate_id‘];//成功,下一篇的跳转地址 }else{ $aurl="javascript:void(0);"; } return array($front,$burl,$after,$aurl); }
视图层:例子:
<li><a>上一个:</a><if condition="$btitle eq null">已经没有了!<else/><a title="<{$btitle[‘title‘]}>" href="<{:U($burl)}>"><{$btitle[‘title‘]}></a></if></li> <li><a>下一个:</a><if condition="$atitle eq null">已经没有了!<else/><a title="<{$atitle[‘title‘]}>" href="<{:U($aurl)}>"><{$atitle[‘title‘]}></a></if></li>
控制器:
//上一篇下一篇 $url="Home/Product/product23"; $url=$this->news->newsBeforeAfterP($url,$id,$cate_id); //上一篇文章内容 $this->assign(‘btitle‘,$url[0]); //上一篇地址 $this->assign(‘burl‘,$url[1]); //下一篇文章内容 $this->assign(‘atitle‘,$url[2]); //下一篇文章地址 $this->assign(‘aurl‘,$url[3]);
分类二三级功能的实现以及分类查询子分类的减少查询数据库的方法
1.分类查询子分类的减少查询数据库的方法
模型类:
public function getGcategoryList($id=0) { $arr = $this->select();//查询数据库 foreach ($arr as $k => $v) { if ($v[‘parent_id‘] == $id) { $retNext[$k][‘cate_id‘] = $v[‘cate_id‘]; $retNext[$k][‘cate_name‘] = $v[‘cate_name‘]; $retNext[$k][‘parent_id‘] = $v[‘parent_id‘]; $retNext[$k][‘next‘] = 0;//用于判断是否还有子类 foreach ($arr as $vv) { if ($vv[‘parent_id‘] == $v[‘cate_id‘]) { $retNext[$k][‘next‘] = 1; break; } } return array($retNext, $arr); } } }
2.分类二三级功能的实现
控制器:
$list=M(‘Category‘)->select(); $this->assign(‘list‘,$list);
视图层:
<div class="bbD">上级分类: <select name="parent_id" id="" style="margin-left: 20px"> <option value="">--请选择--</option> <foreach name="list" item="v"> <if condition="$v[‘parent_id‘] eq 0">//首先获取第一层分类 <option value="<{$v[‘cate_id‘]}>"><{$v[‘cate_name‘]}></option> <foreach name="list" item="vv"> <if condition="$vv[‘parent_id‘] eq $v[‘cate_id‘]">//根据父类ID查询出二级分类。。。 <option value="<{$vv[‘cate_id‘]}>">|-->|<{$vv[‘cate_name‘]}></option> <foreach name="list" item="vvv"> <if condition="$vvv[‘parent_id‘] eq $vv[‘cate_id‘]"> <option value="<{$vvv[‘cate_id‘]}>">|-->|-->|<{$vvv[‘cate_name‘]}></option> </if> </foreach> </if> </foreach> </if> </foreach> </select> </div>