/**
* 检测该分类下所有子分类,并输出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);
}

  

  

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

  1. “子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析

    为了实现下述代码,首先得有数据库和相应的表格,本文用的是https://blog.csdn.net/qaz13177_58_/article/details/5575711/中的案例,即先用链接中那些 ...

  2. ECSHOP:首页实现显示子分类商品,并实现点击Tab页切换分类商品

    例子:首页实现显示子分类商品,并实现点击Tab页切换分类商品(非AJAX) 开始:    1. 打开调试开关     文件地址:include/cls_template.php 找到 : functi ...

  3. SQL-28 查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部

    题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE TABLE IF NOT EXISTS film ( film_i ...

  4. mongodb查询之从多种分类中获取各分类最新一条记录

    mongodb查询之从多种分类中获取各分类最新一条记录 2017年04月06日 13:02:47 monkey_four 阅读数:6707更多 个人分类: MongoDBJavaScript   文章 ...

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

    获取指定分类的所有子分类ID号 //获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID){ //初始化ID数组 $array[] = $ca ...

  6. php 根据子分类循环获取其父级分类

    /** * 根据子分类循环获取其父级分类 */ function goodsCatPath($catId, $data = []){ if($catId==0)return $data; $data[ ...

  7. js中用tagname和id获取元素的3种方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. SQL-30 使用子查询的方式找出属于Action分类的所有电影对应的title,description

    题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE TABLE IF NOT EXISTS film ( film_i ...

  9. monkeyrunner之坐标或控件ID获取方法(六)

    Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备 ...

随机推荐

  1. Lintcode 翻转链表

    翻转一个链表 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 分析: /** * Definition of ListN ...

  2. JS和JQuery概括

    1. BOM 1. location相关 1. location.href 2. location.href="http://www.sogo.com" 3. location.r ...

  3. 封装了一个HOOKAPI的类。。。

    我惊奇地发现,我手竟然这么生了.....   很久很久没有写这方面的东西,现在写着竟然这么手生....哎....   这玩艺,还得天天练....

  4. 几种远程调用接口协议简单比较和web service(SOAP)与HTTP接口的区别:

    什么是web service?       答:soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式Content-type设置为: text/xml任何数据都可以xml化. ...

  5. 嘴巴题8 BZOJ2318: Spoj4060 game with probability Problem

    Time Limit: 1 Sec Memory Limit: 128 MB Submit: 555 Solved: 273 [Submit][Status][Discuss] Description ...

  6. vue使用远程在线更新代码

    一.main.js import Vue from 'vue' import App from './App' import router from './router' import Vuex fr ...

  7. [转]C#委托的异步调用

    本文将主要通过“同步调用”.“异步调用”.“异步回调”三个示例来讲解在用委托执行同一个“加法类”的时候的的区别和利弊. 首先,通过代码定义一个委托和下面三个示例将要调用的方法: ); //模拟该方法运 ...

  8. Trie树 模板

    普通Trie: struct TRIE{ ],tot,end[MAXN]; TRIE(){tot=;} void insert(char *s){//s为要插入的字符串 int len=strlen( ...

  9. python 日记 day1

    1.python2 与 python3 的区别:   a. python2 源码不标准,混乱,重复代码太多.默认方式是ascii码,解决方式:#-*- encoding:utf-8 -*-   b. ...

  10. cookie - 提示上一次访问该网页的时间

          案例:记住上一次访问时间         1. 需求:             1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问.             2. ...