2016-07-09 3 views
-1

Ich habe Datenbanktabelle, wie unten zu machen. Ich möchte Menü wie E-Commerce und Selectbox auch Ebene der Kategorie zu machen.Wie N-Ebene Catetgory Unterkategoriestruktur in codeigniter

public function get_catagory($parent_id=0) 
    { 
     $this->db->where('parent_id', $parent_id); 

     $result = $this->db->get('catagory')->result(); 

     foreach ($result as $row){ 


      $i = 0; 
      if ($i == 0) echo '<ul>'; 
      echo '<li>' .$row->catagory; 

      $this->get_catagory($row->id); 
      echo '</li>'; 
      $i++; 
      if ($i > 0) echo '</ul>'; 

     } 

    } 

ich brauche Array wie unten ..

Array 
(
    [43] => Array 
     (
      [id] => 43 
      [catagory] => ASTM 
      [parent_id] => 3 
      [sub_categories] => Array 
       (
       ) 

     ) 

    [44] => Array 
     (
      [id] => 44 
      [catagory] => DIN 
      [parent_id] => 3 
      [sub_categories] => Array 
       (
        [50] => Array 
         (
          [id] => 50 
          [catagory] => BS 
          [parent_id] => 44 
          [sub_categories] => Array 
           (
            [52] => Array 
             (
              [id] => 52 
              [catagory] => UNE 
              [parent_id] => 50 
              [sub_categories] => Array 
               (
               ) 

             ) 

           ) 

         ) 

        [49] => Array 
         (
          [id] => 49 
          [catagory] => ISO 
          [parent_id] => 44 
          [sub_categories] => Array 
           (
            [51] => Array 
             (
              [id] => 51 
              [catagory] => GOST 
              [parent_id] => 49 
              [sub_categories] => Array 
               (
               ) 

             ) 

           ) 

         ) 

       ) 

     ) 

) 
+0

Machen Sie deutlich Ihre Frage mit einem Beispiel bitte –

Antwort

0

für Nth Ebene Kategorie Sie einzelne Tabelle mit der DB-Struktur verwalten können, wie die ID (PK) sein wird, CAT_NAME, parent_cat_id (für Hauptkategorie Der Wert ist Null, andernfalls wird die Eltern-ID hinzugefügt.

zum Beispiel -

1) vehicle (main category) 
    - Bike 
    - Cars 
     - Maruti 
      - ALTO 
      - i10 
     - AUDI 

in obigem Beispiel diese Funktion rekursive Funktion alle untergeordneten Kategorien oder übergeordnete Kategorien verwenden abrufen können laufen, bis er Kategorien coudn`t gefunden, so dass Sie rekursive Funktion verwenden, haben

+0

wie angezeigt n Ebene catagory Daten in einem Array erhalten –

1

Pass die catagory Ergebnis Array unten Funktion:

$data['catagory']=$this->db->get('catagory')->result_array(); 
$return['result']=$this->ordered_menu($data['catagory'],0); 
echo "<pre>"; 
    print_r ($return['result']); 
    echo "</pre>"; 

Cr eate Funktion wie folgt:

function ordered_menu($array,$parent_id = 0) 
    { 
     $temp_array = array(); 
     foreach($array as $element) 
     { 
      if($element['parent_id']==$parent_id) 
      { 
       $element['subs'] = $this->ordered_menu($array,$element['id']); 
       $temp_array[] = $element; 
      } 
     } 
     return $temp_array; 
    }