2016-08-04 13 views
0

Ich habe zwei Datenbanktabellen Kategorien und Unterkategorien. In der Kategorietabelle gibt es eine Feldunterkategorien-ID, in der ich die Unterkategorien-ID gespeichert habe, die durch Komma getrennt ist. Ich brauche Kategorien und Unterkategorien. Aber ich bin immer nur den letzten Wert der UnterkategorienPHP codeigniter, um Kategorien und Unterkategorien zu erhalten, wobei Unterkategorien durch Komma getrennt sind

//Model 
public function getsubCategoriesbyId($subCategoriesId){ 
     $this->db->select('subCategoriesId, subCategoriesName'); 
     $condition = array('subCategoriesId'=>$subCategoriesId); 
     $this->db->where($condition); 
     $query = $this->db->get('subCategories'); 
     return $query->result(); 
    } 
public function getAllCategories(){ 
      $this->db->select('categoriesId, categoriesName, subCategoriesList'); 
      $query = $this->db->get('categories'); 
      $return = array(); 
      foreach($query->result() as $categoriesList){ 
       $return[$categoriesList->categoriesId]=$categoriesList; 
       $subCategoriesIdArray= explode(',', $categoriesList->subCategoriesList); 
       foreach($subCategoriesIdArray as $subCategoriesId){ 
          $return[$categoriesList->categoriesId]->subCategories = $this->getsubCategoriesbyId($subCategoriesId); 
       } 
      } 
      return $return; 
     } 
     //Controller 
public function mycontroller() 
{ 
     $data['categories_list']=$this->myModel->getAllCategories(); 
     echo "<pre>"; 
     print_r($data['categories_list']); 
     echo "</pre>"; 
     die(); 
} 
     //View 
Array 
    (
    [1] => stdClass Object 
     (
      [categoriesId] => 1 
      [categoriesName] => Nepal 
      [subCategoriesList] => 1, 2, 3, 4, 5, 6 
      [subCategories] => Array 
       (
        [0] => stdClass Object 
         (
          [categoriesId] => 6 
          [categoriesName] => Volunteer Tour 
         ) 

       ) 

     ) 
    ) 

Antwort

0

aktualisieren Sie Ihren Code mit unter einem

foreach($subCategoriesIdArray as $subCategoriesId){ 
    $return[$categoriesList->categoriesId]->subCategories = $this->getsubCategoriesbyId($subCategoriesId); 
} 

zu

foreach($subCategoriesIdArray as $subCategoriesId){ 
    $return[$categoriesList->categoriesId]->subCategories[] = $this->getsubCategoriesbyId($subCategoriesId); 
} 

Verwenden Sie [] und prüfen Sie isset zu

+0

können Sie helfen Sie mir, jeden Wert von Array in Sicht zu zeigen? –

+0

zuerst sagen Sie mir, ist das Problem gelöst? von Unterkategorien –

+0

Thnx eine Menge. es funktioniert gut –

Verwandte Themen