Я нашел этот урок http://sqllessons.com/categories.html и хочу использовать описанный метод, так как он лучше рекурсивного вызова, но у меня есть две проблемы:
Как я узнаю самый глубокий уровень? На одной странице у меня может быть 2, а на другой у меня может быть 20. Я что-то упустил или этот метод можно использовать, только если вы знаете самый глубокий уровень до выполнения!?
У меня многоязычная база данных, как я могу изменить запросы для работы с моей таблицей ниже:
CREATE TABLE `categories` (
`id` int(11) NOT NULL,
`position` int(11) DEFAULT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `parent_id_fk` (`parent_id`),
CONSTRAINT `categories_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `categories` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `categories_locale` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`slug` varchar(100) NOT NULL DEFAULT '',
`name` varchar(40) NOT NULL DEFAULT '',
`category_id` int(11) NOT NULL,
`locale_id` smallint(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Ваша помощь будет принята с благодарностью.