根据一个分类id 获取这个分类底下所有子分类的商品信息,根据下面方法查询出所有有关分类id 再 根据这些id去商品表里查询所有商品信息...

/**
 * 检测该分类下所有子分类,并输出ID(包括自己)
 * 数据库字段 catid pid
 */
function getChildrenIds ($sort_id){
	include_once APPPATH.'/libraries/db.php';
	$db = new Db();
	$ids = $sort_id;
	$sql = "SELECT catid,pid FROM jy_category WHERE pid =".$sort_id;
	$result = $db->select($sql);

	if ($result){
		foreach ($result as $key=>$val){
			$ids .= ','.$val['catid'].",";
			$ids .= getChildrenIds ($val['catid']);
		}
	}
	
	$idsArr = explode(",",$ids);
	$idsArr = array_unique($idsArr);
	$ids = implode(",",$idsArr);
	return $ids;
}

  

/**
 * 检测该分类下所有子分类,并输出ID(不包括自己)
 * 数据库字段 catid pid
 */
function getChildrenIds ($sort_id)
   {
       $db = $this->loadDB();
       $ids = '';
       $sql = "SELECT * FROM t_dept WHERE `parent_id` = '{$sort_id}'";
       $query = $db->query($sql);
       $result = $query->result_array();
 
       if ($result)
       {
           foreach ($result as $key=>$val)
           {
               $ids .= ','.$val['id'];
               $ids .= $this->getChildrenIds ($val['id']);
           }
       }
       return $ids;
}

  上面的查询数据库次数太多了 然后下面这个就好一点,三级分类最多查询三次

	/**
	 * 检测该分类下所有子分类,并输出ID
	 */
	public function getChildrenIds ($pid,$sort_id){
		$aPid = array();
		if(!is_array($pid)){
			$aPid[]=$pid;
		}else{
			$aPid = $pid;
		}
		
		$sql = "SELECT catid,pid FROM jy_category WHERE pid in({$sort_id})";
		$result =$this->db->select($sql);

		$aSort = array();
		$aUnion = array();
		if ($result){
			foreach ($result as $key=>$val){
				$aSort[] = $val['catid'];
			}

			$aUnion = $this->getChildrenIds($aSort,implode(",",$aSort));
		}
		
		
		return array_merge($aPid,$aUnion);
	}

  

  

转载于:https://www.cnblogs.com/phpjinggege/p/5798678.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值