Aggiungere parte di un array multidimensionale

  • Creatore Discussione Creatore Discussione frankylu
  • Data di inizio Data di inizio

frankylu

Nuovo Utente
26 Apr 2012
4
0
0
Ciao,

la situazione è questa:

Sto cercando di riempire l'array $data con un foreach sul risultato della query, poi tree == 1 si posiziona correttamente come capostipite, tree == 2 correttamente si posiziona come figlio di tree == 1 e quidi va ad annidare l'array $data correttamente, ma non riesco in nessun modo a far posizionare i dati con tree == 3 annidati sotto a quelli di tree == 2, non riesco proprio a capire che sintassi usare ho fatto un bel pò di prove ma niente, mi crea un array fratello anziche figlio.. :rolleyes:
PHP:
 if ($Q->num_rows() > 0){
       foreach ($Q->result() as $row){
                          if($row->tree == 3) {
                             $data[0][$row->parentid]['children'][$row->id]['name'] = $row->name; //???? Che sintassi devo usare quà per annidare questi dati come figli di quelli di tree == 2  ???
                                
                          } elseif($row->tree == 2) {
                              $data[0][$row->parentid]['children'][$row->id]['name'] = $row->name;
                              
                          } elseif($row->tree == 1) {
                              $data[0][$row->id]['name'] = $row->name;
                               
                             
                          }
                  
		}
    }

Se qualcuno riesce ad aiutarmi ne sarò grato!

Ciao ciao
 
Non capisco del perchè complicarsi cosi la vita, comunque prova cosi:
PHP:
 if ($Q->num_rows() > 0){ 
       foreach ($Q->result() as $row){ 
                          if($row->tree == 3) { 
                      $data[0][$row->parentid]['children'][$row->parentid]['littlechildren'][$row->id]['name'] =$row->name;
                                 
                          } elseif($row->tree == 2) { 
                              $data[0][$row->parentid]['children'][$row->id]['name'] = $row->name; 
                               
                          } elseif($row->tree == 1) { 
                              $data[0][$row->id]['name'] = $row->name; 
                                
                              
                          } 
                   
        } 
    }
Ho seguito la logica dell'array non so se sia giusto
 
Purtroppo non funziona..

Comunque io sto cercando di costruire delle categorie annidate utilizzando il database, se hai un consiglio da darmi sul come fare ti ascolto molto volentieri, non amo le cose complicate

ma come saprai programmando si finisce spesso per complicarsi la vita e le cose più semplici sono le più difficili.. :byebye:
 
Purtroppo non funziona..

Comunque io sto cercando di costruire delle categorie annidate utilizzando il database, se hai un consiglio da darmi sul come fare ti ascolto molto volentieri, non amo le cose complicate

ma come saprai programmando si finisce spesso per complicarsi la vita e le cose più semplici sono le più difficili.. :byebye:
Perchè farle annidate? Come le devi utilizzare?
 
Utilizzo codeigniter, non so se lo conosci, è un bel framework,

sinceramente le stò cercando di annidare perchè ho seguito un tutorial, non è un buon approccio secondo te?

Il sito che stò creando è praticamente un ecommerce, un pò particolare cercherò di realizzarlo più modulare possibile.

Ma nella costruzione dei CMS non annidano le categorie, hai presente categoria subcategoria subsubcategoria?

Tu come imposteresti la cosa non annidando?

Bè ti ringrazio comunque per l'attenzione.

Ciao
 
Io creerei un solo campo parent_id, che contiene l'ID della categoria genitore, ed è 0 per le categorie principali.
Quando visualizzi una categoria, mostri sia i prodotti di quella categoria, che i link alle eventuali sottocategorie. Tutto qui.
 

Discussioni simili