Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Struttura gerarchica

  1. #1

    Struttura gerarchica

    Ho un problema nella crearezione di una struttura gerarchica.

    Mi spiego meglio.

    Quello che dovrei creare è il seguente elenco, e fino a qui ci sono riuscito.


    Calcio
    Pallavolo
    Basket

    Il problema sorge quando viene scelto un "figlio" che dovrebbe concatenarsi al "genitore". Oppure quanto si vuole far concatenare un altro "figlio" al "figlio" così

    Calcio
    Calcio > Serie A
    Calcio > Serie A > Club
    Calcio > Serie A > Club > Attaccante
    Calcio > Serie B
    Calcio > Serie C
    Pallavolo
    Basket

    Dovrei creare una funzione che permetta la creazione di questo elenco. Come dati ho "id", "nome", "genitore_id"

    Quello che riesco a ottenere è questo

    Calcio
    Calcio > Serie A
    Serie A > Club : Milan
    Club > Attaccante
    ...

    Non riesco a ottenere la struttura gerarchica.. come posso fare?
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  2. #2
    secondo me per ottenere una gerarchia devi fare così:


    id genitore nome cognome
    |
    id figlio nome1 cognome1
    |
    id nipote nome2 cognome2
    |
    \


    e non così:



    id genitore ------------> id figlio ---------------> id nipote--------------> e cosi via
    nome nome2 nome3
    cognome cognome2 cognome3

  3. #3
    scusa ho combinato un casino con la formattazione
    vedo di scriverlo a parole

  4. #4
    http://img84.imageshack.us/img84/851...titolo1lu1.jpg

    prima volevo dire quello che c'è nell'iimmagine.

    bisogna fare come nel primo esempio e non come nel secondo.

    potrebbe dipendere da questo?

  5. #5
    Scusa ma non ti seguo proprio.

    Per ogni dato inserito si può scegliere il dato genitore e dopo in automatico dovrei richiamare il genitore e vedere se al genitore del dato è associato a sua volta un genitore, e così via fino ad arrivare al dato con la casella parent_id 0...

    solo che non ci riesco, ottengo sempre e solo il primo genitore e non tutta la gerarchia
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

  6. #6
    Ho risolto, sono riuscito a creare la funzione. La posto per chi fosse interessato

    Codice PHP:
    function FamilyTree($id$list) {
            
        
    $output '';
        
    $arr = array();
            
        while(
    $id != && strlen($id) > 0) {
        
    $arr[] = $id;
            
    $id $list[$id]['parent'];
        }
        
        for(
    $i count($arr) -1$i >= 0$i--) {
            
            
    $cat $list[$arr[$i]];
            
            
    $output .= $cat['name'];
            
            if(
    $i 0) {
                
    $output .= ' - ';
            }
        }
        return 
    $output;

    Genera una stringa con i dati - secondo - la - gerarchia

    dovete pasargli un array di questo tipo:

    Codice PHP:
    $arr = array
    (
        
    '1' => array
            (
                
    'id' => 1
                
    'name' => Curzio
                
    'parent' => 0
            
    )

        
    '11' => array
            (
                
    'id' => 11
                
    'name' => Gerolamo
                
    'parent' => 1
            
    )

        
    '111' => array
            (
                
    'id' => 111
                
    'name' => Fabrizio
                
    'parent' => 11
            
    )
    ); 
    La rovina del mondo sara' l'indifferenza. Ma chi se ne frega!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.