2015-03-16 2 views
0

У меня есть 2 таблицы:Как создать многомерный массив из запроса?

category(id_cat,cat_name) 
sub_cat(id_cat,id_sub_cat,sub_cat_name) 

Я хочу, чтобы создать представление путем объединения этих таблиц. Я создал контроллер с кодом, как это:

$d['category'] = $this->db->query('select * from category a left join sub_cat b on a.id_cat=b.id_cat'); 
$this->load->view('cat',$d); 

и мое мнение:

<table><tr><th>Cat Name</th><th>Sub Cat Name</th></tr> 
<?php foreach($category->result_array() as $dt) { ?> 
<tr><td><?php echo $dt['cat_name'] ?></td><td><?php echo $dt['sub_cat_name']?></td></tr> 
<?php } ?> 
</table> 

и результат моей точки зрения, как это:

------------------------ 
cat_name | sub_cat_name 
------------------------ 
cat1  | sub 1 
cat1  | sub 2 
cat1  | sub 3 
------------------------ 
cat2  | sub 1 
cat2  | sub 2 
------------------------ 

Но я хочу, чтобы вид что-то вроде этого:

------------------------ 
cat_name | sub_cat_name 
------------------------ 
cat1  | sub 1 
     | sub 2 
     | sub 3 
------------------------ 
cat 2 | sub 1 
     | sub 2 
------------------------ 
+0

Я перефразировать название, чтобы уменьшить [проблемы] XY (http://meta.stackexchange.com/questions/66377/what-is -the-xy-problem) и добавил некоторые теги для улучшения видимости, а затем фиксированное форматирование и грамматику. –

+0

Можете ли вы отправить формат массива –

ответ

0

Вы можете использовать temp переменные, где вы можете хранить cat_name и проверьте, что cat_name уже используется иначе она не будет отражена в вашей точке зрения:

<?php 
    $temp = ''; 
    foreach($category->result_array() as $dt) { 
     if ($dt['cat_name'] != $temp) { 
      echo $dt['cat_name']; 
      $temp = $dt['cat_name']; 
     } 
    } 
?> 

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

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

Вы можете проверить скрипку здесь: http://codepad.org/WwUm4zeZ

+0

Я пробовал, но «cat_name» не отражается вообще. –

+0

Я отредактировал условный оператор от 'equals (==)' to 'not equals (! =)', Попробуйте еще раз. Извини, я виноват. Я попробовал это, вот ссылка для моей скрипки, http://codepad.org/WwUm4zeZ – Cedric

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