根据一个分类id 获取这个分类底下所有子分类的商…
2018-06-17 18:58:14来源:未知 阅读 ()
/**
* 检测该分类下所有子分类,并输出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);
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi10.3状态栏上显示进度条/图片 2020-06-02
- 一个托盘图标组件 2020-01-03
- Python GUI 2018-09-29
- ClientDataSet应用 2018-08-13
- ASP.NET简单验证码 2018-06-21
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
