thinkphp分页代码

来源:互联网 发布:java解析pdf文件内容 编辑:程序博客网 时间:2024/05/21 07:52

<?php

namespace Home\Controller;

use Think\Controller;

//use Common\Tools\HomeController;

class ShowControllerextends Controller {

    publicfunction showlist(){

    /******获取分类信息,给模板展示*****/

        $category= D('Category');

        //根据等级 分别获取

        $cat_infoA= $category->where(array('cat_level'=>0))->select();

        $cat_infoB= $category->where(array('cat_level'=>1))->select();

        $cat_infoC= $category->where(array('cat_level'=>2))->select();

        $this -> assign('cat_infoA',$cat_infoA);

        $this -> assign('cat_infoB',$cat_infoB);

        $this -> assign('cat_infoC',$cat_infoC);

        /******获取分类信息,给模板展示*****/

 

        $cat_id= I('get.cat_id');

        

        

        

        $goods = new \Model\ArticleModel();

        

        $cdt['is_del'] = '不删除';

        $cdt['is_sale'] = '上架';

        

 

        /***********关联分类条件***********/

        //获取当前选取的分类 和 其内部全部子级分类,并合并为一个集合

        //商品的主分类、扩展分类必须在此集合中。

        //获得全部子级分类

        //全路径以当前选取分类的全路径为开始内容的分类信息

        $cat= D('Category');

        $now_cat = $cat-> find($cat_id); //当前选取的分类信息

        $now_path= $now_cat['cat_path'];

        $ext_cat = D('Category')->field('cat_id')->where("cat_path like '$now_path%'")->select();

        //SELECT * FROM `php41_category` WHERE ( cat_path like '1%' )

        //dump($ext_cat); //选取的、子级的都存在

 

        $s= "";

        foreach($ext_catas $k => $v){

            $s .= $v['cat_id'].",";

        }

        $s = rtrim($s,',');

        //dump($s);//string(19) "1,7,8,9,12,13,14,15"

 

        //获得商品列表,条件是:“主分类”或“扩展分类”都在$s里边

        $sql= "select goods_id from __ARTICLE__ where cat_id in ($s) union select goods_id from __GOODS_CAT__ where cat_id in ($s)";

        $ids = D()->query($sql);

        //dump($ids);//二维数组信息,符合要求的商品id

 

        $w= "";

        foreach($idsas $kk => $vv){

            $w .= $vv['goods_id'].",";

        }

        $w = rtrim($w,',');

 

        //从$w的条件里边,获得需要的商品列表信息

        $cdt['goods_id'] = array('in',$w);

        /***********关联分类条件***********/

$count =$goods->where($cdt)->count();// 查询满足要求的总记录数 $map表示查询条件

        $Page= new  \Think\Page($count,10);// 实例化分页类 传入总记录数(这是根据@979137的意见修改的,这个建议非常好!)实例化分页类 传入总记录数

        $show= $Page->show();// 分页显示输出

 

        $info= $goods->where($cdt)->order('goods_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();

        //SELECT * FROM `php41_goods` WHERE `is_del` = '不删除' AND `goods_id` IN ('30','31','29','28') ORDER BY goods_id desc

        $this-> assign('info',$info);

       

$this->assign('page',$show);// 赋值分页输出

        

        

        $this->display();

    }

}

0 0
原创粉丝点击