• php thinkphp 复用无限极分类,写入到数据库中


    调取出相关的分类,复制一遍,写入到数据库中

    从后台调取出指定的树状分类,结构不变,复制一遍,写入到数据库中

    1、调取出的树状分类,id和pid有关联逻辑

    2、function.php  方法

    /*
     * === 复用相关N级分类 ===
     * $list 一维数组类型,id和pid需有逻辑关联
     * $root=0  意思是pid等于零代表一级结构
     * $cp_id  产品id,我需要更换一下产品id
     *
     * 开发时间:
     * 2020-08-18
     *
     * 开发者:
     * 遇事稳坐钓鱼台 https://www.cnblogs.com/zc290987034
     * */
    function tree_bom_fl_fuyong($list,$root=0,$cp_id){
        if(!$cp_id)return 0;
        $packData = array();
        $sql = M('scm_bom_fl');
    
        foreach ($list as $k => $v) {
            $packData[$v['id']] = $v;//将所有的分类id作为数组key
            //先将所有数据写到数据库,pid统一默认的是零0
            $fl_1['paixu'] = $v['paixu'];
            $fl_1['chanpin_id'] = $cp_id;
            $fl_1['title'] = $v['title'];
            $fl_1_id = $sql->add($fl_1);
            $packData[$v['id']]['aid'] = $fl_1_id;//将每一个新增的id放到统一指定的字段中
        }
        //利用引用,将每个分类添加到父类child数组中,这样一次遍历即可形成树形结构。
        foreach ($packData as $key => $val) {
            if ($val['pid'] != $root) {//代表跟节点
                $shangji_aid = $packData[$val['pid']]['aid'];//找出他上级的aid
                $aid = $val['aid'];//当前要修改的aid
                $sql->where(array('id'=>$aid))->setField('pid',$shangji_aid);
            }
        }
        return 1;
    }

    3、效果

  • 相关阅读:
    ViewData,ViewBag,TempData
    http和https
    Array与ArrayList
    程序员与书和视频
    技术学习的方法研究
    文章发布声明
    面向对象JAVA多态性
    嵌入式开发总结
    CSDN博客代码显示乱码的原因
    将Windows的桌面目录设置到D盘
  • 原文地址:https://www.cnblogs.com/zc290987034/p/13530889.html
Copyright © 2020-2023  润新知