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