- Home
- Categorie
- Coding e Sistemistica
- PHP
- [PHP] Ciclo da capogiro, per una gerarchia di categorie illimitate
-
[PHP] Ciclo da capogiro, per una gerarchia di categorie illimitate
Sto progettando un cms con la possibilità di aggiungere categorie e sottocategorie infinite agli articoli o annunci.
Esempio:
Immobiliare
--Affittasi
----Monolocali
----Appartamenti
--Vendesi
----Ville a schieraMezzi di trasporto
--Auto
----Utilitarie
------tre porte
------cinque porte
----Berline
----CabrioHo pensato di memorizzarle in un database con i seguenti campi:
id_categoria, nome_categoria, id_genitore
Quando id_genitore è uguale a zero, la categoria è alla radice.
Nell'esempio di prima, la categoria *tre porte avrà come *id_genitore l'id_categoria di *utilitarie, *che a sua volta avrà come id_genitore l'id di auto, che avrà come genitore *Mezzi di trasporto. *Quest'ultima categoria avrà id_genitore zero.
Molto semplice..........ma come estrapolo le categorie con la giusta gerarchia?
Mi rimetto all'opera!
A presto!
-
be' se sono infinite, ti consiglio una struttura a "tag" che permette di associare più di una parola chiave ad una entità, piuttosto che ad albero (che per quanto complessa possa essere ha sempre problemi con le entità cross-border.)
[/ot]Per il tuo problema, ti consiglio di creare un ciclo ricorrente, anche magari con 1 query con più left join per andare a ricercare sulla stessa tabella le categoria superiori.
select b., l1., l2., l3., l4., l5. FROM tabella AS b LEFT JOIN tabella AS l1 ON id_categoria=b.id_genitore ....
-
Grazie Piccolo Socrate,
purtroppo con la tua query non risolvo moltoQuello che mi fa impazzire è ordinarle come nelle esempio del primo post.
La categoria Immobiliare contiene la categoria affittasi che a sua volta contiene monolocali e appartamenti. Subito dopo c'è la categoria vendesi...
Quindi per fare ad esempio un componente <select> di un form dove selezionare la categoria scelta....devo caricarli proprio in questo ordine.
Io non demordo
ciao