Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    residenza
    http://www.okkioalprezzo.com/it/
    Messaggi
    206

    Algoritmo per realizzare struttura di "infinite" categorie

    Salve ragazzi!
    Scaricando vari CMS Open Source (joomla) ho notato che nel pannello amministrativo vi è la possibilità di creare "infiniti" menu e sotto menu per poi associare gli articoli a questi..

    es:

    ./home
    .../sotto_categoria_uno
    .../sottocategoria_due
    ....../sottocategoria_tre_associata_due
    ........./sottocategoria_quattro_associata_tree
    .../sotto_categoria_uno
    ./chi_siamo
    ./cosa_facciamo
    ./ecc

    Ho provato a verificare la struttura del data base per non ho individuato le sotto_categoria associate..

    qualcuno può illuminarmi ?

    Grazi in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    92
    Dipende se ogni categoria può essere figlia di una o anche più categorie genitrici.

    Nel caso più semplice (quindi ogni figlio ha un padre) io creerei un database così:

    tabella Categorie
    - id_categoria
    - nome
    - descrizione
    - id_parent

    Il parent rappresenta il padre, se impostato a 0 allora è una categoria senza padri (principale), altrimenti vi inserisci l'id_categoria del padre.
    Per visualizzarle tutte basta che crei una funzione ricorsiva che stampa i figli.

    Un esempio potrebbe essere

    stampa_figli($id_cat)
    {
    - cerca nel db tutte le categorie in cui id_parent = $id_cat
    - per ciascuno di essi (quindi dentro al while) esegui stampa_figli($id_categoria) (dove in questo caso è il valore estratto dal db)
    }

    La prima funzione la richiami con stampa_figli(0). Piccolo esempio giusto per darti un'idea.

    Se invece ogni figlio ha più padre crei una seconda tabella in cui hai una corrispondenza tra padri e figli.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.