|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
[php/mysql] Organizzare categorie e sottocategorie
Visto che un'esempio vale piu' di mille parole vi posto subito un immaggine:
![]() ![]() Sulla destra vedete la tabella SQL sulla sinistra il risultato che vorrei ottenere tramite il PHP. Praticamente stampare a video quella tabella come una serie di liste nidificate( UL,LI ). Il mio problema e' proprio a livello di algoritmo non riesco a trovare un modo per gestire correttamente categorie e sottocategorie... Avete qualche idea? p.s La tabella che vedete nell'immaggine e' cosi' organizzata id_cat=Id della categoria univoco nome=Il nome della categoria/sottogategoria id_principale=Settato a 0 se e' un categoria principale altrimenti settato al valore dalla categoria "padre"... grazie ciao
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) Ultima modifica di frizzo28 : 28-10-2008 alle 10:33. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
mi sono imbattuto in una situazione simile alla tua, se non identica e ho risolto creando prima un array contenente tutti i dati:
Codice:
while ($row = $stmt->fetch()) { if ($row['id_principale'] == 0) { $db_data[$row['nome']] = array(); $db_data[$row['nome']]['desc'] = $row['desc']; $db_data[$row['nome']]['link'] = $row['link']; $db_data[$row['nome']]['selected'] = ($item == $row['nome']) ? 1 : 0; $db_data[$row['nome']]['subs'] = array(); } else { if (array_key_exists($row['id_principale'], $db_data)) { $db_data[$row['id_principale']]['subs'][$row['nome']] = array(); $db_data[$row['id_principale']]['subs'][$row['nome']]['desc'] = $row['desc']; $db_data[$row['id_principale']]['subs'][$row['nome']]['link'] = $row['link']; $db_data[$row['id_principale']]['subs'][$row['nome']]['selected'] = ($item == $row['nome']) ? 1 : 0; } } } se hai domande chiedi pure. edit: però ho visto solo ora che tu hai più livelli, io ne avevo solo due...vedi se riesci a riadattare il codice =)
__________________
![]() Ultima modifica di vizzz : 28-10-2008 alle 11:28. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
@vizz ti ringrazio ma in effetti il codice che hai postato e' per solo 2 livelli invecie io dovrei gestirne N di livelli...
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2003
Messaggi: 980
|
Scritto adesso:
Codice PHP:
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2005
Città: Roma sud
Messaggi: 590
|
La tua soluzione funzione alla grande ecco come l'ho modificata per visualizzare solo una categoria e/o sottocategoria e tutte le sue sottocategorie quando ci si clicca...
principale.php Codice PHP:
Codice PHP:
ciao ![]()
__________________
-Mac Book intel core duo 1,83GHz, 1,25 Gb RAM -Amd athlon 64 dual core 4400+, 2 GB RAM, Asus a8n-sli Deluxe, totale 500 GB di HARD DISK(4 hdd) Ultima modifica di frizzo28 : 28-10-2008 alle 17:30. |
![]() |
![]() |
![]() |
#6 | |
Junior Member
Iscritto dal: Jul 2008
Messaggi: 1
|
Quote:
Ciao..sto leggendo questo post...e quello che devo fare è proprio questo...fare in modo che le categorie si espandono solo se cliccate...qualcuno mi sa aiutare?? |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:53.