Newsgroup: it.comp.www.php
Titolo: Managing Hierarchical Data in MySQL

Salve,
sto utilizzando il metodo descritto su questo tutorial, per creare un
albero gerarchico... mi servirebbe un aiuto a fare una select...
allora io ho questo db
1, 'ELECTRONICS', 1, '26'
2, 'TELEVISIONS', 2, '9'
3, 'TUBE', 3, '4'
4, 'LCD', 5, '6'
5, 'PLASMA', 7, '8'
6, 'PORTABLE ELECTRONICS', 10, '25'
7, 'MP3 PLAYERS', 11, '20'
8, 'FLASH', 12, '17'
9, 'CD PLAYERS', 21, '22'
10, '2 WAY RADIOS', 23, '24'
15, '8GB', 13, '14'
16, 'INFORMATICA', 27, '58'
17, '32GB', 15, '16'
18, 'hard disk', 28, '57'
19, 'sata', 29, '42'
20, 'pata', 43, '56'
21, 'interni', 30, '35'
22, 'esterni', 36, '41'
23, 'interni', 44, '49'
24, 'esterni', 50, '55'
25, '500GB', 31, '32'
26, '1TB', 33, '34'
27, '500GB', 37, '38'
28, '1TB', 39, '40'
29, '500GB', 45, '46'
30, '1TB', 47, '48'
31, '500GB', 51, '52'
32, '1TB', 53, '54'
33, 'IPOD', 18, '19'
che viene strutturato in questa maniera dopo aver eseguito la select e
fatto una formattazione html
ecco la select che eseguo
SELECT node.category_id as id, 
node.name
 AS name,
(COUNT(parent.category_id) - 1) as indent FROM nested_category AS
node, nested_category AS parent WHERE node.lft BETWEEN parent.lft AND
parent.rgt GROUP BY node.category_id ORDER BY node.lft
http://img175.imageshack.us/my.php?image=alberojpgbd9.jpg
e fin qui va tutto bene
Quello che voglio ottenere io è un 'altra cosa
se ad esempio l'utente va nella pagina FLASH... voglio che venga
visualizzato in alto alla pagina, un mini albero che mostra dove si
trova
e quindi una cosa del genere
ELECTRONICS -> PORTABLE ELECTRONICS -> MP3 PLAYERS -> FLASH
che select posso eseguire??
grazie mille anticipatamente

 che select posso eseguire??
Esegui una SELECT che estragga tutti gli elementi dove il left ed il
right della foglia siano compresi tra il left ed il right.
Se ordini (ASC) per il left o il right ottieni esattamente il risultato
che ti serve.
-- 
Vuoi distribuire il tuo sito web su CD/DVD?
Prova 
http://www.dwebpro.com/
Vuoi diventare un esperto analista PHP/MySQL?
Vieni a fare uno stage con noi: 
http://www.creativepark.it/stage/

 Vieni a fare uno stage con noi:
http://www.creativepark.it/stage/
Grazie mille per la risposta, però non so se ho capito bene, perchè
con la mia select io non faccio altro che prelevare sempre anche le
altre foglie... mi viene fuori una cosa del genere
ELECTRONICS -> TELEVISIONS -> TUBE -> LCD -> PLASMA -> PORTABLE
ELECTRONICS -> MP3 PLAYERS -> FLASH
ti chiedo molto se mi fai un esempio direttamente in sql??
grazie ancora

 Vieni a fare uno stage con noi:
http://www.creativepark.it/stage/
Grazie mille per la risposta, però non so se ho capito bene, perchè
con la mia select io non faccio altro che prelevare sempre anche le
altre foglie... mi viene fuori una cosa del genere
ELECTRONICS -> TELEVISIONS -> TUBE -> LCD -> PLASMA -> PORTABLE
ELECTRONICS -> MP3 PLAYERS -> FLASH
ti chiedo molto se mi fai un esempio direttamente in sql??
grazie ancora

 Vieni a fare uno stage con noi:
http://www.creativepark.it/stage/
Grazie mille per la risposta, però non so se ho capito bene, perchè
con la mia select io non faccio altro che prelevare sempre anche le
altre foglie... mi viene fuori una cosa del genere
ELECTRONICS -> TELEVISIONS -> TUBE -> LCD -> PLASMA -> PORTABLE
ELECTRONICS -> MP3 PLAYERS -> FLASH
ti chiedo molto se mi fai un esempio direttamente in sql??
grazie ancora

ecco la select che eseguo io è questa qui
SELECT name FROM nested_category WHERE lft <= (SELECT lft FROM
nested_category WHERE category_id=8) AND rgt >= (SELECT rgt FROM
nested_category WHERE category_id=8);
però esce fuori questo
ELECTRONICS -> TELEVISIONS -> TUBE -> LCD -> PLASMA -> PORTABLE
ELECTRONICS -> MP3 PLAYERS -> FLASH
PS:
scusate per i tanti post ma non capisco come mai ogni volta che invio
un messaggio, lo invia più di una volta.... fa tutto da solo..