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

/**
 * @Author:      HTL
 * @Email:       [email protected]
 * @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:       [email protected]
 * @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:       [email protected]
 * @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:       [email protected]
 * @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‘
);

来自为知笔记(Wiz)

时间: 2024-10-16 05:56:50

Thinkphp 获取所有子分类或父分类ID的相关文章

Magento架构师的笔记-----Magento显示当前目录的父分类和子分类的分类名

在Magento目录的分类页面里,希望在左侧导航获取到父分类和子分类,可以用以下方法:打开app/your_package/your_themes/template/catalog/navigation/left.phtml 显示父分类的分类名 1 2 3 4 5 6 7 8 9 10 $currentCat = Mage::registry('current_category'); //如果是根目录,则显示当前目录 if ( $currentCat->getParentId() == Mage

ThinkPHP分类查询(获取当前分类的子分类,获取父分类,下一级分类)

获取指定分类的所有子分类ID号 //获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID){ //初始化ID数组 $array[] = $categoryID; do { $ids = ''; $where['pid'] = array('in',$categoryID); $cate = M('cate')->where($where)->select(); foreach ($cate as $k=>$v){ $array[]

magento 获取分类及其子分类 多种情况举例

1. 获取指定分类id 下的子分类 // 例如获取 分类id为 13 的子分类信息 <?php $root = Mage::getModel('catalog/category')->load(13); $subCat = explode(',',$root->getChildren()); $collection = $root ->getCollection() ->addAttributeToSelect("*") ->addFieldToFi

通过父级id获取到其下所有子级(无穷级)id及父级id——Mysql函数实现

[需求]某用户只能查看其自己信息及其下级信息,涉及通过该用户所在部门获取其下所有部门(多层)id集合. 步骤一:对数据库进行设置: set global log_bin_trust_function_creators=TRUE; 可以在Navicate点击工具栏的[工具]-> [命令行界面]执行以上语句:也可以在服务器上进入数据库执行. 步骤二:执行以下sql语句,生成sql方法. CREATE FUNCTION `getChildList`(`rootId` VARCHAR(32)) RETU

2、后台分类页-多级分类列表

分类中会出现一些分类属于另一分类,也就是子分类现象,为了在页面更好的展现这层隶属关系,我们需要优化一下 在数据表blog_catagory中插入一些新数据 思路: 将之前获得的数据进行筛选,如果cate_pid为0则代表该元组为父级分类,为其他的数据说明就是对应cate_id下的子分类. 为了之后的调用方便,定义传入的参数 1.数据的处理放到Category.php模型中,只需要给控制器返回数据结果. 1 <?php 2 3 namespace App\Http\Model; 4 5 use I

jquey复选框三级分类关联一二级分类

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Category_Manage_New_Two.aspx.cs" Inherits="Lilaidao.Admin.Weblogin.Category_Manage_New_Two" %> <%@ Register Src="bottom.ascx" TagName=&quo

jquey复选框三级分类关联一二级分类(留着备用)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Category_Manage_New_Two.aspx.cs" Inherits="Lilaidao.Admin.Weblogin.Category_Manage_New_Two" %> <%@ Register Src="bottom.ascx" TagName=&quo

iOS 获取所有子字符串Rang

现在APP开发对效果要求越来与丰富,各种特效层出不穷.其中以动画效果和文字以富文本展示居多. 在网上也看了好几种方法,感觉有的处理的麻烦了,下面是我总结的获取子字符串所有Rang的一些方法: 字符串做富文本处理需要通过NSMutableAttributedString来处理,先创建一个NSMutableAttributedString对象: NSMutableAttributedString *attribtStr = [[NSMutableAttributedString alloc] ini

ecshop商品列表页,循环显示当前分类的二级分类以及分类下的商品

1.includes\lib_goods.php,在最末尾添加几个function /** * 获得指定分类下的子分类 * * @access public * @param integer $cat_id 分类编号 * @return array */ function get_children_tree($cat_id) { if ($cat_id >0 ) { $sql = 'SELECT count(*) FROM ' . $GLOBALS['ecs']->table('categor