1. /**
  2. * 检测该分类下所有子分类,并输出ID(包括自己)
  3. * 数据库字段 catid pid
  4. */
  5. function getChildrenIds ($sort_id){
  6. include_once APPPATH.'/libraries/db.php';
  7. $db = new Db();
  8. $ids = $sort_id;
  9. $sql = "SELECT catid,pid FROM jy_category WHERE pid =".$sort_id;
  10. $result = $db->select($sql);
  11.  
  12. if ($result){
  13. foreach ($result as $key=>$val){
  14. $ids .= ','.$val['catid'].",";
  15. $ids .= getChildrenIds ($val['catid']);
  16. }
  17. }
  18.  
  19. $idsArr = explode(",",$ids);
  20. $idsArr = array_unique($idsArr);
  21. $ids = implode(",",$idsArr);
  22. return $ids;
  23. }

  

  1. /**
  2. * 检测该分类下所有子分类,并输出ID(不包括自己)
  3. * 数据库字段 catid pid
  4. */
  5. function getChildrenIds ($sort_id)
  6. {
  7. $db = $this->loadDB();
  8. $ids = '';
  9. $sql = "SELECT * FROM t_dept WHERE `parent_id` = '{$sort_id}'";
  10. $query = $db->query($sql);
  11. $result = $query->result_array();
  12.  
  13. if ($result)
  14. {
  15. foreach ($result as $key=>$val)
  16. {
  17. $ids .= ','.$val['id'];
  18. $ids .= $this->getChildrenIds ($val['id']);
  19. }
  20. }
  21. return $ids;
  22. }

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

  1. /**
  2. * 检测该分类下所有子分类,并输出ID
  3. */
  4. public function getChildrenIds ($pid,$sort_id){
  5. $aPid = array();
  6. if(!is_array($pid)){
  7. $aPid[]=$pid;
  8. }else{
  9. $aPid = $pid;
  10. }
  11.  
  12. $sql = "SELECT catid,pid FROM jy_category WHERE pid in({$sort_id})";
  13. $result =$this->db->select($sql);
  14.  
  15. $aSort = array();
  16. $aUnion = array();
  17. if ($result){
  18. foreach ($result as $key=>$val){
  19. $aSort[] = $val['catid'];
  20. }
  21.  
  22. $aUnion = $this->getChildrenIds($aSort,implode(",",$aSort));
  23. }
  24.  
  25. return array_merge($aPid,$aUnion);
  26. }

  

  

根据一个分类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. 深入浅出 Java Concurrency (27): 并发容器 part 12 线程安全的List/Set[转]

    本小节是<并发容器>的最后一部分,这一个小节描述的是针对List/Set接口的一个线程版本. 在<并发队列与Queue简介>中介绍了并发容器的一个概括,主要描述的是Queue的 ...

  2. 2019暑训第一场训练赛 |(2016-icpc区域赛)部分题解

    // 今天下午比赛自闭了,晚上补了题,把AC的部分水题整理一下,记录坑点并吸取教训. // CF补题链接:http://codeforces.com/gym/101291 A - Alphabet 题 ...

  3. <每日一题>题目7:简单的学生管理系统V1.0

    ''' # 学生管理系统v1.0 # 添加学生的信息 # 删除学生的信息 # 修改学生的信息 # 查看学生的信息 #遍历学生的信息 #退出系统 ''' import json #1 显示操作功能 de ...

  4. C++【stack/queue】用法和例子

    Stack的常用基本操作: s.push() // 压栈 s.emplace() // 插入,相当于push(目前掌握的唯一区别是emplace可以自行调用构造函数,push不行) s.empty() ...

  5. bootstrap-select 插件示例

      本文原创地址:http://www.cnblogs.com/landeanfen/p/7457283.html 一.组件开源地址以及API说明 bootstrap-select开源地址:https ...

  6. [编织消息框架][JAVA核心技术]数值与逻辑分离

    为什么要分离? 业务需求是不停地变,如果把条件写进代码里,当用户需求变时要改代码发版本更新才能生效,这过程无疑是漫长的 就算是在开发期,不停的变开发者精力耗光在沟通,小修改上,无法专注逻辑部分 分离的 ...

  7. Django项目:CMDB(服务器硬件资产自动采集系统)--02--02CMDB将服务器基本信息提交到API接口

    AutoCmdb # urls.py """AutoCmdb URL Configuration The `urlpatterns` list routes URLs t ...

  8. mysql分区与分表的区别

    分区 分区就是把一个数据表的文件和索引分散存储在不同的物理文件中. mysql支持的分区类型包括Range.List.Hash.Key,其中Range比较常用: RANGE分区:基于属于一个给定连续区 ...

  9. MyBatis-Spring(四)--MapperFactoryBean实现增删改查

    上一篇文章中提到,使用SqlSessionTemplat时需要输入一长串字符串来获取mapper,这种方式IDE不会检查程序的准确性并且很容易出错,所以这篇文章介绍另一种可以避免这种问题,并且也可以使 ...

  10. Luogu P3254 圆桌问题(最大流)

    P3254 圆桌问题 题面 题目描述 假设有来自 \(m\) 个不同单位的代表参加一次国际会议.每个单位的代表数分别为 \(r_i (i =1,2,--,m)\) . 会议餐厅共有 \(n\) 张餐桌 ...