Heim  >  Artikel  >  Backend-Entwicklung  >  点击一个分门别类,把当前分类及其所有子分类的所有产品列出来

点击一个分门别类,把当前分类及其所有子分类的所有产品列出来

WBOY
WBOYOriginal
2016-06-13 12:00:22966Durchsuche

点击一个分类,把当前分类及其所有子分类的所有产品列出来


上面是分类表,产品表就是 关联 分类表的 cate_id  ,确定产品所属的分类

现在我想要的效果是 点击一个分类,把当前分类及其所有子分类的所有产品列出来

请大神指教

想的头都破了,递归?还是?怎么弄呢?
------解决方案--------------------
点击了分类,于是就知道了分类号
查询数据库,凡是父类号为这个分类号的就是他的子分类了
------解决方案--------------------
不知道你数据量大不大
小企业站的话,得到父分类ID后,查到所有子分类ID,然后合并到一起:2,5,6,7,8这种
再到产品表sql语句用in关键字查出来,怎么用,搜一下吧...
不清楚in能不能用到索引?

如果数据量比较大,就用冗余换效率
给分类表加一个floor字段,父分类就写0,1级子分类就写1,2级子分类写2。。。
假设你有3层分类,那么在产品表加3个字段,cate,cate1,cate2
产品属于哪个子分类,就把从父到2级子 3个字段都填满
筛选时根据传入的cateid,先查出这个分类的floor,然后查出他的所有上级分类id
剩下就是把所有得到的id作为条件筛选了
这里有个关键,要建一个BTREE索引,以cate到cateN的顺序都包括进来
同数据量方法2要快很多,但他的缺点是子分类移动时还要改产品表
------解决方案--------------------
这个简单。就一直查询下去。

由主分类ID查询出子分类,又从子分类ID查询出第三级,又从第三级ID查询出第四级……

当然,你的服务器能经得起这样折腾才行。

不管你是不是无限级,都是这样的查询。没有捷径可走。


------解决方案--------------------

引用:
这个简单。就一直查询下去。

由主分类ID查询出子分类,又从子分类ID查询出第三级,又从第三级ID查询出第四级……

当然,你的服务器能经得起这样折腾才行。

不管你是不是无限级,都是这样的查询。没有捷径可走。

他有一个cate_path字段啊,不需要这样的。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn