您好,登錄后才能下訂單哦!
<?php /** * *************************************************************** * 商品分類 2016年04月26日18:42:22 * *************************************************************** * @param * @return void * @author 王迪<2880707519@qq.com> * @license * @Copyright (c) 2009-2016 http://www.lvmaque.com All rights reserved. */ class Model_Shop_Class{ protected $_table_name = 'shop_goods_class'; protected $_primary_key= 'gc_id'; /** * *************************************************************** * 獲得排列好的分類信息 2016年04月26日18:43:22 * *************************************************************** * @param * @return void * @author 王迪<2880707519@qq.com> * @license * @Copyright (c) 2009-2016 http://www.lvmaque.com All rights reserved. */ public static function getList(){ $parent_0 = "select gc_id,gc_parent_id from sline_shop_goods_class where gc_parent_id=0"; $list = DB::query(Kohana_Database::SELECT,$parent_0)->execute()->as_array(); $parentArray=array(); $parentArray[0]=$list; $parentArray['findIds']=$list; self::getChild($parentArray); return $parentArray; } //查找子集 public static function getChild(&$parent){ //id的數組 $idArray = Kohana_Util::only_array($parent['findIds'],'gc_id'); //id連接城字符串 $idString = implode(',',$idArray); $child = "select gc_id,gc_parent_id from sline_shop_goods_class where gc_parent_id in ({$idString})"; $childRes = DB::query(Kohana_Database::SELECT,$child)->execute()->as_array(); if(count($childRes)<1){ return; } $parent['findIds']=$childRes; //按parent_id把數組存儲起來 foreach($childRes as $v){ $parent[$v['gc_parent_id']][]=$v; } self::getChild($parent); } }
這么做查數據庫的效率會比較高,是一層一層的往下查的
找子集的時候就從parent_id等于零開始查找,
然后循環0鍵值對應的數組,
再找里面的parent_id對應的鍵值是否存在,如果存在就把里面的繼續遍歷,如果不存在就結束遞歸!
O(∩_∩)O哈哈哈~!,我是不是很6,絕對原創,親!轉載只要998!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。