PHP递归写入MySQL实现无限级分类数据操作示例
本文实例讲述了PHP递归写入MySQL实现无限级分类数据操作。分享给大家供大家参考,具体如下:
PHP递归写入MySQL无限级分类数据,表结构:
CREATETABLE`kepler_goods_category`( `id`intunsignedNOTNULLPRIMARYKEYAUTO_INCREMENT, `parentid`intunsignedNOTNULLdefault0comment'父级分类ID', `name`varchar(255)NOTNULLdefault''comment'分类名称', `kepler_fid`intunsignedNOTNULLdefault0comment'对应开普勒分类ID', `create_time`timestampNOTNULLdefaultCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP )ENGINE=InnoDBDEFAULTCHARSET=utf8;
递归方法写入代码:
staticpublicfunctionaddCategoryFromKepler($fid,$parentid=0){ $category_list=Kepler::queryGoodsCategoryList($fid);//获取数据 $category_list=$category_list['jd_kepler_item_querycategoriesbyfid_response']; if($category_list['total']>0){ foreach($category_list['categories']as$key=>$value){ $parentid_sub=KeplerCategory::addCategory($value['name'],$value['id'],$parentid);//插入数据库,得到父ID self::addCategoryFromKepler($value['id'],$parentid_sub);//递归 } } returntrue; }
调用代码:
KeplerCategory::addCategoryFromKepler(0);
递归方法读取代码:
staticpublicfunctiongetCategoryFormatToKepler($parentid,$format_data=array(),$parent_prefix='',$current_prefix=''){ $category_list=self::getCategoryByParentid($parentid);//根据父ID获取 if(!empty($category_list)){ foreach($category_listas$key=>$value){ $format_data=self::getCategoryFormatToKepler($value['id'],$format_data,$parent_prefix.','.$current_prefix,$value['kepler_fid']); } }else{ $format_data[]=trim($parent_prefix.','.$current_prefix,','); } return$format_data; }
调用代码:
$category_list=KeplerCategory::getCategoryFormatToKepler(0);
希望本文所述对大家PHP程序设计有所帮助。