Newsgroup: it.comp.www.php
Titolo: categorie annidate in pp

salve a tutti,
dovrei realizzare un e-commerce che naturlamente avrà delle categorie
e sottocategorie annidate tra loro... le sottocategorie devono poter
essere infinite e non prestabilite, cosi da poter dare al cliente
piena libertà di tutte le categorie e stotto categorie da creare...
ho letto il metodo utilizzato in questo link ma non so se può andar
bene e se ne esiste un'altro migliore.. voi che ne dite??
http://www.bigthink.it/sql/gestire-infiniti-livelli-di-categorie-in-sql/
in ogni caso, seguendo il tutorial sopra, non ho capito una cosa....
nell'esempio viene creato un insieme e tanti sottoinsiemi e ad ognuno
viene attribuito un numero left e right per capire a quele sotto
insieme appartiene...
es.
+-------------+----------------------+-----+-----+
| category_id | name                 | lft | rgt |
+-------------+----------------------+-----+-----+
|           1 | ELECTRONICS                     |   1 |  20 |
|           2 | TELEVISIONS                       |   2 |   9 |
|           3 | TUBE                                    |   3 |   4 |
|           4 | LCD                                      |   5 |   6 |
|           5 | PLASMA                               |   7 |   8 |
|           6 | PORTABLE ELECTRONICS   |  10 |  19 |
|           7 | MP3 PLAYERS                     |  11 |  14 |
|           8 | FLASH                                 |  12 |  13 |
|           9 | CD PLAYERS                       |  15 |  16 |
|          10 | 2 WAY RADIOS                   |  17 |  18 |
+-------------+----------------------+-----+-----+
e se per caso io volessi aggiungere una nuova sottocategoria a
TELEVISIONS?? cosa dovrei fare?? dovrei ogni volta aggiornare i left e
right di tutti i sotto insiemi??
cioè con una sottocategori ain più
ELECTRONICS diventerebbe 1 - 21
TELEVISIONS
ma ogni volta che io dinamicamente inserisco una nuova sotto categoria

salve a tutti,
dovrei realizzare un e-commerce in php che naturlamente avrà delle
categorie e sottocategorie annidate tra loro... le sottocategorie
devono poter essere infinite e non prestabilite, cosi da poter dare al
cliente piena libertà di tutte le categorie e stottocategorie da
creare...

http://www.bigthink.it/sql/gestire-infiniti-livelli-di-categorie-in-sql/

es.


cioè con una sottocategori in più
ELECTRONICS diventerebbe 1 - 21
TELEVISIONS DIVENTEREBBE 2 - 10

 right di tutti i sotto insiemi??
Dovresti aggiornare molti elementi, non solo i "sotto insiemi".
-- 
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/
cosa mi consigliate allora??

 Vieni a fare uno stage con noi:
http://www.creativepark.it/stage/
cosa mi consigliate allora??

i nomi delle colonne
category_id
name
lft
rgt
1,   'ELECTRONICS',                     1, '22'
2, 'TELEVISIONS',                         2, '9'
3, 'TUBE',                                     3, '4'
4, 'LCD', 5, '6'
5, 'PLASMA', 7, '8'
6, 'PORTABLE ELECTRONICS',    10, '21'
7, 'MP3 PLAYERS',                      11, '16'
8, 'FLASH',                                  12, '15'
9, 'CD PLAYERS',                        17, '18'
10, '2 WAY RADIOS',                  19, '20'
15, '8GB',                                    13, '14'
16, 'INFORMATICA',                     23, '24'
tutto sommato il metodo sopra citao potrebbe andar bene, mi servirebbe
poter anche effetuare una select che mi vada a prendere solo i sotto
insiemi di una categoria..
es.
io ho la sotto categoria MP3 PLAYERS con id 7, io vorrei poter
visualizzare i sotto insiemi solo di quella categoria ed evitare di
visualizzare i sottoinsiemi dei sottoinsieme di MP3 PLAYERS.. spero di
essermi spiegato bene
in questo caso c'è solo un sotto insieme di MP3 PLAYERS che è FLASH. A
sua volta FLASH ha un suo sotto insieme  che è 8GB ma a me non
interessa visualizzarlo..
eseguo questa select ma mi visualizza cmq tutti i figli
SELECT node.category_id as id, 
node.name
 AS name FROM nested_category
AS node, nested_category AS parent WHERE parent.category_id = 7 and
node.lft BETWEEN parent.lft + 1 AND parent.rgt GROUP BY 
node.name
ORDER BY node.lft



