后台无限级分类添加的实现方式

本文介绍了一种数据库设计方法,通过添加字段parent_id和path来实现分类管理。具体包括使用PHP实现分类添加功能,通过拼接path字段值完成数据入库,并展示了如何在模板中选择父级分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.数据库设计添加字段父级分类ID号parent_id和path路径,0代表为根分类(一级分类),一个‘_’代表二级分类: 
这里写图片描述

2.添加分类模板修改为选择父级分类名: 
这里写图片描述
模板中添加parent_id提交,如下:

    <tr>
        <th width="120"><i class="require-red">*</i>上级分类:</th>
        <td>
             <select name="parent_id" class="required">
                <option value="">请选择</option>
              <!--还未做非空验证-->
              <foreach name='cateList' item='val'>
               <option value="{$val.cate_id}">{:str_repeat('&nbsp;',substr_count($val['path'],'_')*4)}{$val.cate_name}</option>
             </foreach>
           </select>
      </td>                                
</tr>

3.后台接收进行查询,拼接parent_id的组成path,然后进行数据入库;

    /*分类添加方法
      author:ren
      return:void
    */
    public function add(){
        //如果POST了提交则入库
        if(IS_POST){
            $data=I('post.');
            // 若没设置父级,则自动识别为根分类
            if(empty($data['parent_id'])){
                $data['path']=0;
            }else{
                //查询父级ID的path字段值
                $parentPath=M('category')->where("cate_id='$data[parent_id]'")->getField('path');
                //拼接添加分类的path值
                $data['path']=$parentPath.'_'.$data['parent_id'];                
            }

            $result=M('category')->add($data); 
            if($result){
                $this->success('添加成功!',U('Category/index'));
            }else{
                $this->error("添加出错...");
            }
        }else{
        //没提交动作则正常显示分类添加模板  
            $cateList=D('category')->getCategoryTree();
            $this->assign('cateList',$cateList);
            $this->display();                      
        }
    }

转载于:https://www.cnblogs.com/phpzlq/p/9075433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值