当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP递归写入MySQL实现无限级分类数据操作示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-10-10 14:08:18 浏览: 评论:0 

本文实例讲述了PHP递归写入MySQL实现无限级分类数据操作,分享给大家供大家参考,具体如下:

PHP递归写入MySQL无限级分类数据,表结构:

  1. CREATE TABLE `kepler_goods_category` ( 
  2.  `id` int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT, 
  3.  `parentid` int unsigned NOT NULL default 0 comment '父级分类ID'
  4.  `namevarchar(255) NOT NULL default '' comment '分类名称'
  5.  `kepler_fid` int unsigned NOT NULL default 0 comment '对应开普勒分类ID'
  6.  `create_time` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

递归方法写入代码:

  1. static public function addCategoryFromKepler($fid$parentid = 0){ 
  2.   $category_list = Kepler::queryGoodsCategoryList($fid); // 获取数据 
  3.   $category_list = $category_list['jd_kepler_item_querycategoriesbyfid_response']; 
  4.   if($category_list['total'] > 0){ 
  5.     foreach ($category_list['categories'as $key => $value) { 
  6.       $parentid_sub = KeplerCategory::addCategory($value['name'], $value['id'], $parentid); // 插入数据库,得到父ID 
  7.       self::addCategoryFromKepler($value['id'], $parentid_sub); // 递归 
  8.     } 
  9.   } 
  10.   return true; 

调用代码:

KeplerCategory::addCategoryFromKepler(0);

递归方法读取代码:

  1. static public function getCategoryFormatToKepler($parentid$format_data = array(), $parent_prefix = ''$current_prefix = ''){ 
  2.   $category_list = self::getCategoryByParentid($parentid); // 根据父ID获取 
  3.   if(!emptyempty($category_list)){ 
  4.     foreach ($category_list as $key => $value) { 
  5.       $format_data = self::getCategoryFormatToKepler($value['id'], $format_data$parent_prefix . ',' . $current_prefix$value['kepler_fid']); 
  6.     } 
  7.   }else
  8.     $format_data[] = trim($parent_prefix . ',' . $current_prefix','); 
  9.   } 
  10.   return $format_data

调用代码:

$category_list = KeplerCategory::getCategoryFormatToKepler(0);

Tags: PHP递归 MySQL无限级分类

分享到: