Newsgroup: it.comp.www.asp
Titolo: gestione sottocategorie

Salve a tutti,
sto creando uno script per gestire delle recensioni, dividendole per
categorie, fin qui nessun problema, il mio desiderio pero' sarebbe di
dividerle in sottocategorie, un esempio di categorie disponibili e' nella
lista qui sotto:
Dischi
Dischi > Italiani
Dischi > Italiani > Album
Dischi > Italiani > Compilation
Dischi > Stranieri > Album
Dischi > Stranieri > Compilation
Video
Video > Dvd
Il la tabella del database access che gestisce le categorie ha lo schema qui
sotto
---------------------------------
| ID | cat_padre | nome  |
|----|-----------|---------------
| 1  |     0     | Dischi |
| 2  |     1     | Italiani |
| 3  |     1     | Stranieri |
| 4  |     2     | Album |
| 5  |     2     | Compilation |
| 6  |     3     | Album |
| 7  |     3     | Compilation |
| 8  |     0     | Video |
| 9  |     8     | Dvd  |
---------------------------------
dove:
ID, tipo contatore, chiave primaria di accesso alla tabella
cat_padre, tipo numerico con valore predefinito a 0, indica la categoria
padre
nome, il nome e/o descrizione della categoria e/o sottocategoria
Fin qui tutto bene, il mio problema e' trovare un metodo per inserire in un
menů a tendina di un modulo l'elenco delle categorie con la struttura
categoria padre > categoria (come l'elenco che ho fatto prima) dove ad ogni
voce dell'elenco e' associato l'ID della categoria.
Come posso fare una volta estratte tutte le categorie dalla tabella?
Inserirlo in un array? Il problema e' che in VBScript gli array devono avere
una dimensione predefinita, invece quest'elenco dev'essere di dimensione
indeterminata, quindi da questa strada non penso di poter passare.
Se qualcuno mi puo' dare qualche consiglio lo ringrazio infinitamente fin da
ora! :)
Grazie
Saluti
BES

 indeterminata, quindi da questa strada non penso di poter passare.
se vuoi seguire questa strada puoi fare una query che ti restituisce il
numero di record della tabella (select count(id) as numero) e poi crei il
vettore
Ciao


e una volta che so quanti record ci sono?
io pensavo di fare un controllo sulla categoria_padre, se e' uguale a zero
inserire la categoria nel menu' a tendina cosi', se e' maggiore andare a
pescare la categoria padre, su questa rifare il controllo e cosi' via...ma
non ho le idee molto chiare... :)

 una dimensione predefinita, invece quest'elenco dev'essere di dimensione
. vedi anche 'redim preserve' . .
Nino.

 non ho le idee molto chiare... :)
puoi fare una cosa:
le descrizioni tipo dischi, album, compilation che, a quanto ho capito si
ripetono, le metti in una tabella (ma puoi anche non farlo se ti è più
comodo)
in un'altra ti crei l'albero usando tanti campi quanti sono i livelli (che
dal tuo esempio sembrano tre)
livello1   livello2   livello3
1               0            0                dischi
1               1            0                italiani
1                1           1                album
in questo modo ordinando per livello1, livello2, livello 3 hai la gerarchia.
scorrendo il recordset se livello2 è vuoto è sicuramente un padre,
altrimenti è un figlio... con un paio di if te la cavi.
non so se sono stata chiara...

 ha scritto nel messaggio
news:ajqb7l$1cav9v$1...@ID-138749.news.dfncis.de...

non e' la soluzione adatta, perche' io cerco la possibilita' di aggiungere
infinite categorie su infiniti livelli, ok, oltre il terzo diventa inutile,
pero' voglio fare una cosa il piu' flessibile possibile.
oggi pomeriggio ho avuto un po' di tempo ed ho scritto il codice
funzionante, solo che poi mi sono accorto che funzionava solo fino alla
prima sottocategoria, se le sottocategorie erano 3 o piu' elenca solo le
ultime due.
Cmq ci sono riuscito creando un oggetto categoria con 3 proprieta' (id,
categoria padre e nome) e inserendo le istanze in un array.
Funziona tutto perfettamente, la cosa da sistemare e' solo l'ordinamento
delle sottocategorie, ma oggi non ho trovato la soluzione e dopo due ore mi
e' passata la voglia, chissa' solo quando avro' di nuovo un po' di tempo per
metterci le mani, vuoi tu il codice per sistemare la cosa? :)
Saluti
BES