【发布时间】:2010-07-28 22:30:31
【问题描述】:
我希望你们能帮助我解决这个问题。所以,我有一个产品表和一个类别表。类别表的结构如下所示。将有大约 20 个类别,深度为三到四级。为了获得类别树,编写了一个递归函数,它工作正常。
我的新任务是显示给定类别的产品。例如,我将使用下面显示的数据。因此,如果我添加 category_id = 7 的产品,我必须在用户选择类别 7 时显示该产品,而且当用户选择类别 4 或类别 1 时也必须显示该产品。此外,如果用户选择 id = 1 的类别,它必须显示类别 = 1、4、5、6 的产品。
我的类别表如下所示:
CREATE TABLE `categories` (
`category_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
`category_name` varchar(256) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`category_slug` varchar(256) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`category_parent` smallint(5) unsigned NOT NULL DEFAULT '0',
`category_description_ro` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
`category_description_en` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`category_id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
下面是表格中的数据示例:
category id | category name | category_parent
1 Categoria 1 0
2 Categoria 2 0
3 Categoria 3 0
4 Categoria 1.1 1
5 Categoria 1.2 1
6 Categoria 1.3 1
7 Categoria 1.1.2 4
【问题讨论】: