ThinkPHP3.2中文章内容页的上一篇,下一篇功能,以及分类功能的实现

上一篇下一篇功能的实现

模型层:注意:数据表的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>

 

转载于:https://www.cnblogs.com/houbingxu2014025681/p/8391537.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值