根据一个分类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设备 ...
随机推荐
- Spring MVC(八)--控制器接受简单列表参数
有些场景下需要向后台传递一个数组,比如批量删除传多个ID的情况,可以使用数组传递,数组中的ID元素为简单类型,即基本类型. 现在我的测试场景是:要从数据库中查询minId<id<maxId ...
- Python运算符,逻辑运算
运算符 计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算.比较运算.逻辑运算.赋值运算.成员运算.身份运算.位运算,今天我们暂只学习算数运算.比较运算.逻辑运算.赋值运算 ...
- 在scrapy中过滤重复的数据
当为了确保爬到的数据中没有重复的数据的时候,可以实现一个去重的item pipeline 增加构造器方法,在其中初始化用于对与书名的去重的集合 在process_item方法中,先取出item中要判断 ...
- Activiti流程定义部署、删除
1.部署流程定义 部署流程定义也可以认为是增加流程定义. 首先创建流程引擎对象(公用的方法) private ProcessEngine processEngine = ProcessEngin ...
- OSG在VS2008下的配置安装
一.准备工作 下载相关的工具软件: 1, 最新版的OSG库:OpenSceneGraph-2.8.2.zip. 2, 安装源代码所需要的工具:cmake-2.6.4-win32-x86.zip 3, ...
- day 71作业
作业: url配置 urlpatterns = [ url(r'^v2/cars/$',views.CarAPIView.as_view()), url(r'^v2/cars/(?P<pk> ...
- Tuxera ntfs软件如何删除干净
sudo /Library/Filesystems/fusefs_txantfs.fs/Contents/Resources/Support/uninstall-package.sh
- memcpy 和 memmove
memcpy 原形为: void *memcpy(void *dest, const void *src, size_t n); 其用于内存空间的拷贝,但是并没有考虑内存重叠问题. memmove原形 ...
- python简单爬豆瓣电影排名
爬豆瓣电影 网站分析: 1 打开https://movie.douban.com,选择 [排行榜],然后随便选择一类型,我这里选择科幻 2 一直浏览网页,发现没有下一的标签,是下滑再加载的,可 ...
- redis常见的面试题
redis和memched有什么区别,为什么单线程的redis比多线程的memched效率高 string:ky类型 hash:字典redis的哈希结构可以使你像在数据库中更新一个属性一样只修改某一项 ...