2015-02-11 3 views
1

У меня есть две таблицы в моей базе данных, Один Категории и другой Sub_Categories, я хочу, чтобы отобразить их, как это:Показать категории и подкатегории с использованием CodeIgniter

Categorie 1 
sub categoie 1 
sub categoie 2 
sub categoie 3 
sub categoie 4 
Categorie 2 
sub categoie 1 
sub categoie 2 
sub categoie 3 
sub categoie 4 

Но я не знаю, как это сделать это. В моей таблице базы данных у меня есть следующие поля: Категории: ID, Name, Icon. Подкатегории: ID, Categ_id, Название

ответ

5

Это должно работать;

public function get_categories() 
{ 
    $query = $this->db->get('Categories'); 
    $return = array(); 

    foreach ($query->result() as $category) 
    { 
     $return[$category->id] = $category; 
     $return[$category->id]->subs = $this->get_sub_categories($category->id); // Get the categories sub categories 
    } 

    return $return; 
} 


public function get_sub_categories($category_id) 
{ 
    $this->db->where('Category', $category_id); 
    $query = $this->db->get('Sub_Categories'); 
    return $query->result(); 
} 

Все это делает получить это все категории, но затем получает все подкатегории для каждой из категорий. Вызов функции get_categories() должен возвращать объект в нужном формате.

Надеюсь, это поможет.

Редактировать

Вы бы вызвать функцию get_categories из контроллера и передать его мнению;

$data['categories'] = $this->your_model->get_categories(); 
$this->load->view('view_file', $data); 

Тогда в вашем представлении вы будете показывать их следующим образом;

<ul> 
<?php 
    foreach ($categories as $category) 
     { 
?> 
    <li><?php echo $category->name; ?> 
<?php 
    if(!empty($category->subs)) { 
     echo '<ul>'; 
     foreach ($category->subs as $sub) { 
      echo '<li>' . $sub->name . '</li>'; 
     } 
     echo '</ul>'; 
    } 
?> 
</li> 
<?php 
} 
?> 
</ul> 
+0

Как я могу отобразить на виду – lobilopd

+0

Я обновил свой ответ. – Craig

+0

Спасибо мужчине, у меня есть другой вопрос. у меня есть на моей странице с левой стороны страницы, где я покажу категории и подкатегории, а в правой части я покажу что-нибудь еще из базы данных. хорошо ли отправлять все данные из контроллера в один массив или нет. и спасибо в advace – lobilopd

Смежные вопросы