Mam oto tabelę:
CREATE TABLE `categories` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , `parent` INT UNSIGNED NOT NULL , `name` VARCHAR( 20 ) NOT NULL , PRIMARY KEY ( `name` ) , INDEX ( `id` ) ) ENGINE = MYISAM ;
Oraz przykładowe dane:
INSERT INTO `categories` VALUES (1, 0, 'Nadrzędna 1'), (2, 0, 'Nadrzędna 2'), (3, 0, 'Nadrzędna 3'), (4, 1, 'Podrzędna do 1: aaa'), (5, 1, 'Podrzędna do 1: bbb'), (6, 4, 'Podrzędna do aaa: ab'), (7, 4, 'Podrzędna do aaa: xy'), (8, 6, 'Podrzędna do ab: kon');
Chciałbym, aby baza generowała mi szlak od potomka do pierwszego przodka (parent = 0 oznacza pierwszego przodka) czyli dla przykładowego id = 4 szlak wyglądałby następująco:
Podrzędna do 1: aaa
Nadrzędna 1
id, name
4, Podrzędna do 1: aaa
1, Nadrzędna 1
A dla id = 8
id, name
8, Podrzędna do ab: kon
6, Podrzędna do aaa: ab
4, Podrzędna do 1: aaa
1, Nadrzędna 1
id = 2
2, Nadrzędna 2
itd...