萌新求教!PHP怎么获取一个分类下面的所有子分类的数据?万分感谢

数据表结构如下:|category|CREATETABLEcategory(idint(11)NOTNULLDEFAULT'0',pidint(11)DEFAULTNULL,titlevarchar(50)COLLATEutf8_unicode_ciDEFAULTNULL,namevarchar(50)COLLATEutf8_unicode_ciDEFAULTNULL,PRIMARYKEY(id))ENGINE=MyISAMDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci
问题:现在每一个分类都可以是无限级,随便点击一个全部,展现所有当前分类下面的子分类数据。比如:点击了食品分类逻辑:食品中有水果,蔬菜,水果里有苹果,香蕉,蔬菜里有西蓝花,白菜,等等。点击食品后,怎么把苹果,香蕉,西蓝花,白菜的所有数据展现出来?
也就是说,不管点击哪个分类,都把当前分类下面的所有子分类下面的数据都返回。
请问怎么搞呢?(PHP)
收到一只叮咚
浏览 413回答 2
2回答

红颜莎娜

category表里加个字段path,ALTERTABLE`category`ADDCOLUMN`path`varchar(255)NULLDEFAULT0AFTER`name`;以逗号逐级分隔所有父类,idpidnamepath10食品021水果0,131蔬菜0,142苹果0,1,2查询所有食品子类SELECT*fromcategorywhereFIND_IN_SET('1',`path`);

慕容森

可以参考基于closuretable的存储方案,即加一个关联表,存储两个类别之间的层级距离。然后查询所有到该类别距离大于0的所有类别,就是你要查找的所有子类。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript