ThinkPHP分类相关查询(获取所有子分类,获取父分类,下一级分类等)


//获取指定分类的所有子分类ID号
    function getAllChildcateIds($categoryID)
    {
        //初始化ID数组
        $array[] = $categoryID;
        do
        {
            $ids = '';
            $where['pid'] = array('in',$categoryID);
            $cate = M('cate')->where($where)->select();
            foreach ($cate as $k=>$v)
            {
                $array[] = $v['id'];
                $ids .= ',' . $v['id'];
            }
            $ids = substr($ids, 1, strlen($ids));
            $categoryID = $ids;
        }
        while (!empty($cate));
        $ids = implode(',', $array);
        return $ids;	//	返回字符串
        //return $array //返回数组
    }

  

//获取指定分类所有父ID号
    function getAllFcateIds($categoryID)
    {
        //初始化ID数组
        $array[] = $categoryID;
        
        do
        {
            $ids = '';
            $where['id'] = array('in',$categoryID);
            $cate = M('cate')->where($where)->select();
            echo M('cate')->_sql();
            foreach ($cate as $v)
            {
                $array[] = $v['pid'];
                $ids .= ',' . $v['pid'];
            }
            $ids = substr($ids, 1, strlen($ids));
            $categoryID = $ids;
        }
        while (!empty($cate));

        $ids = implode(',', $array);
         return $ids;	//	返回字符串
        //return $array //返回数组
    }

  

//获取指定分类的所有子分类 键为ID,值为分类名
    function getCateKv($categoryID)
    {
    	//初始化ID数组,赋值当前分类
		$array[] = M('cate')->where("id={$categoryID}")->getField("cateName");
        do
        {
            $ids = '';
            $where['pid'] = array('in',$categoryID);
            $cate = M('cate')->where($where)->select();
            echo M('cate')->_sql();
            foreach ($cate as $k=>$v)
            {
                $array[$v['id']] = $v['cateName'];
                $ids .= ',' . $v['id'];
            }
            $ids = substr($ids, 1, strlen($ids));
            $categoryID = $ids;
        }
        while (!empty($cate));
        $ids = implode(',', $array);

         //return $ids;	//	返回字符串
        return $array //返回数组
    }

方法都是通用的,不只在thinkphp框架中能用,只是数据库查询方法不一样。

像这种方法getCateKv()返回数组形式,键为分类ID,值为分类名的,很好做面包屑导航。

今儿写出来也算是温习一遍啦!!


					


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM