php查询父表和子表,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'));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值