Thinkphp 获取所有子分类或父分类ID

 

/**
 * @Author:      HTL
 * @Email:       Huangyuan413026@163.com
 * @DateTime:    2016-04-22 11:25:02
 * @Description: 获取当前分类下所有子类ID
 * @pid:父类ID
 */
function get_child_ids($pid){
    return $this->__get_ids($pid,'','id');
}
 /**
 * @Author:      HTL
 * @Email:       Huangyuan413026@163.com
 * @DateTime:    2016-04-22 11:25:02
 * @Description: 获取当前分类下所有父类ID
 * @id:子类ID
 */
function get_parent_ids($id){
    return $this->__get_ids($id,'','pid');
}
 /**
 * @Author:      HTL
 * @Email:       Huangyuan413026@163.com
 * @DateTime:    2016-04-22 11:25:02
 * @Description: 获取类下所有父/子类ID
 * @pid:多个父/子类ID集以,分隔
 * @childids:找到的子/父分类列表
 * @find_column:where查找的字段[id|pid:default]
 */
function __get_ids($pid,$childids,$find_column = 'id'){
    if(!$pid || $pid<=0 || strlen(pid)<=0 || !in_array($find_column,array('id','pid'))) return 0;
    if(!$childids || strlen($childids)<=0) $childids = $pid;
    $column = ($find_column =='id'? "pid":"id");//id跟pid为互斥
    $ids = $this->model->where("$column in($pid)")->getField("$find_column",true);
    $ids = implode(",",$ids);
    
    //未找到,返回已经找到的
    if($ids<=0) return $childids;
    //添加到集合中
    $childids .= ','.$ids;
    //递归查找
    return $this->__get_ids($ids,$childids,$find_column);
}
 /**
 * @Author:      HTL
 * @Email:       Huangyuan413026@163.com
 * @DateTime:    2016-04-07 09:33:27
 * @Description: 默认状态更改
 */
function is_default(){
  $id = intval($_GET['id']);
	$type = intval($_GET['status']);
	if ($id>0) {
		//取消默认时将取消所有子分类的默认
		if($type!=1){
	    		$id = $this->_get_child_ids($id);
		}
    else{
        $id = $this->_get_parent_ids($id);
    }
    print_r($id);exit;
		$rst = $this->model->where("id in($id)")->setField('is_default',$type);
		if ($rst) {
			$this->success(L("SAVE_SUCCESS"), U("index"));
		} else {
			$this->error(L('SAVE_ERROR'));
		}
	} else {
		$this->error(L('Parameter_ERROR'));
	}
}

 

CREATE TABLE `thk_material` (
    `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
    `pid` INT(11) NULL DEFAULT '0' COMMENT '父类ID'   
);

 

 

 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值