根据一个分类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);
}
根据一个分类id 获取这个分类底下所有子分类的商品信息,根据下面方法查询出所有有关分类id 再 根据这些id去商品表里查询所有商品信息的更多相关文章
- “子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。”SQL查询错误解析
为了实现下述代码,首先得有数据库和相应的表格,本文用的是https://blog.csdn.net/qaz13177_58_/article/details/5575711/中的案例,即先用链接中那些 ...
- ECSHOP:首页实现显示子分类商品,并实现点击Tab页切换分类商品
例子:首页实现显示子分类商品,并实现点击Tab页切换分类商品(非AJAX) 开始: 1. 打开调试开关 文件地址:include/cls_template.php 找到 : functi ...
- SQL-28 查找描述信息中包括robot的电影对应的分类名称以及电影数目,而且还需要该分类对应电影数量>=5部
题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE TABLE IF NOT EXISTS film ( film_i ...
- mongodb查询之从多种分类中获取各分类最新一条记录
mongodb查询之从多种分类中获取各分类最新一条记录 2017年04月06日 13:02:47 monkey_four 阅读数:6707更多 个人分类: MongoDBJavaScript 文章 ...
- ThinkPHP分类查询(获取当前分类的子分类,获取父分类,下一级分类)
获取指定分类的所有子分类ID号 //获取指定分类的所有子分类ID号 function getAllChildcateIds($categoryID){ //初始化ID数组 $array[] = $ca ...
- php 根据子分类循环获取其父级分类
/** * 根据子分类循环获取其父级分类 */ function goodsCatPath($catId, $data = []){ if($catId==0)return $data; $data[ ...
- js中用tagname和id获取元素的3种方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SQL-30 使用子查询的方式找出属于Action分类的所有电影对应的title,description
题目描述 film表 字段 说明 film_id 电影id title 电影名称 description 电影描述信息 CREATE TABLE IF NOT EXISTS film ( film_i ...
- monkeyrunner之坐标或控件ID获取方法(六)
Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备 ...
随机推荐
- PAT甲级——A1103 Integer Factorization
The K−P factorization of a positive integer N is to write N as the sum of the P-th power of Kpositiv ...
- python 描述器
语法简析 一般来说,描述器(descriptor)是一个有”绑定行为”的对象属性(object attribute),它的属性访问被描述器协议方法重写.这些方法是 __get__(). __set__ ...
- hbase master一直报启动不起来问题(region空洞和region卡在spilt)
数据不重要或者一直卡着的情况下,可以切换hdfs用户到hbase的wal目录下对spilting的数据进行重命名.具体步骤如下 1.关闭hbase集群 2.切换hdfs用户 3.到hbasewal目录 ...
- 获取地址栏URL中参数, getQuerySting()方法
今天同事用的以前的获取url地址参数获取不到.以前的方法失效了.后面发现是正则表达式bug: 第一种获取方法(针对普通情况的一般够用): function getQueryString(name) { ...
- Java操作Mysql笔记
第一步,需要下载JDBC驱动, 点我.然后选择合适的版本即可. 下载完成之后解压,然后将mysql-connector-java-5.1.6-bin.jar文件放到java的安装目录下面. 这里每个人 ...
- x86架构:x86架构
ylbtech-x86架构:x86架构 X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令 ...
- linux 获取外网ip地址
curl ifconfig.me 私有ip地址,获取公网ip
- 通过原生JS打印一个空心菱形图案
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- spring-注解配置-junit整合测试-aop
1 使用注解配置spring 1.1 步骤 导包4+2+spring-aop 1.为主配置文件引入新的命名空间(约束) 2.开启使用注解代理配置文件 3.在类中使用注解完成配置 1.2 将对象注册到容 ...
- hbase Hfile处理原因
Hile 内部的数据是按key排序好的,但Hfile之间数据并不能保证key的排序,也就是说对于新生成的Hfile,其内部的key并不都比老的Hfile的大,因此每次检索时,都需要在所有的Hfile中 ...