• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 数据库无限分类如何用跟类别ID获取该类别下面的全部子类别商品,上表结构

数据库无限分类如何用跟类别ID获取该类别下面的全部子类别商品,上表结构

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了数据库无限分类如何用跟类别ID获取该类别下面的全部子类别商品,上表结构等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:数据库无限分类如何用跟类别ID获取该类别下面的全部子类别商品,上表结构
描述:

cat_id cat_name pid cat_pat
类别ID(自增) 类别名称 0(父Id,若为0则是根类别,为自增ID) 路径
请问各位大神,能不能给出最好的方法,直接用跟类别ID 1 查询出下面的所有子类别
数据表如下:

id cat_name pid cat_path
1 手机 0 ,
2 智能手机 1 ,1,
3 三星 2 ,1,2,
4 三星S系列 3 ,1,2,3,
5 三星M系列 3 ,1,2,3,

数据库id自增,mysql数据库id自增,oracle数据库id自增,数据库id自动增长,sql 查询数据库id,查询数据库id,数据库id是什么,数据库id自增语句,access数据库id,数据库id自增长,苹果id数据库,数据库自动生成id,数据库表id自增,apple id数据库,数据库中i


解决方案1:

这没人回答,有前不久做了相关的工作,把算法给你吧。
思路如下:用一个堆栈来临时保存未处理根节点以及所有其的子节点,不断从堆栈中取一个节点输入,并把其直接子节点,压入堆栈,直到堆栈为空,算法结束。
我已经为你重写了详细的注释,看懂应该不成问题了!

    $waitList = array();                     //等待堆栈(数组用做堆栈),未处理的id
    array_push($waitList, $_GET["cid"]);     //我这是点中某个节点(cid),列出所有子类中的数据
    $rsList = array();                        //结果队列

    while (count($waitList) > 0) {            //等待堆栈中还有节点,继续处理
        $tmp = array_pop($waitList);          //取出一个节点
        array_push($rsList, $tmp);            //输出这个节点

        $dc = M("DocCategory");               //从数据表中找出这个节点的所有子节点
        $dcon['pid'] = $tmp;
        $dcs = $dc->where($dcon)->field('id')->select();

        foreach ($dcs as $value) {                //将所有子节点压入等待堆栈
            array_push($waitList, $value['id']);
        }
    }

    $con['category'] = array('in', $rsList);      //生成查询条件,等待队列中已经包含了所有的子节点


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 数据库无限分类如何用跟类别ID获取该类别下面的全部子类别商品,上表结构

相关文章

  • 2017-06-07 windbg打不开运行后没反应
  • 2017-06-07 JBoss5中的事务模块可以单独拿出来吗?
  • 2017-06-07 七牛上资源换https后,部分403错误
  • 2017-06-07 为什么我刚充了10元钱没冲进去,钱扣了,但余额却没变?
  • 2017-06-07 这行javascript正则表达式有什么问题?
  • 2017-06-07 用flash和jpegmini压缩图片,哪个更好一些
  • 2017-06-07 七牛云存储自动分配给我的默认域名不能访问
  • 2017-06-07 (python)请问png读取出来到编码是怎样的?
  • 2017-06-07 如何设计缓存的更新策略
  • 2017-06-07 关于python35使用exec动态调用方法获取返回值的问题:单独执行好使,但是封装在class里就会报错?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 访问qiniudnscom结尾的网址显示网站未备案?
    • 不知道七牛有没有弄视频在线转码的意向
    • SSH项目无法部署到jboss6中
    • (golang)用go在github上下载的项目怎样运行它
    • ScalaScala关于seq重载的问题
    • 求javapfop(处理结果持久化)的demo
    • python导入的txt文件中有中文输出错误
    • python“不能编码对象”是怎么的?
    • 求助~我安装了GitforWindows安装完后
    • (python)scrapyimport同目录下module出错

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有