2017-01-24 3 views
0

Я пытаюсь отобразить данные массива в таблице, и это было отлично, но как отобразить массив данных на основе определенного поля с основным полем name ниже является примером данные в таблице.Создайте массив данных на основе определенных полей в CodeIgniter

Пример данных

| Name | Option | Value  
=============================== 
    | Ahmad | High | 90 
    | Smith | Low  | 43 
    | John | Low  | 55 
    | Adam | High | 79 
    | Smith | High | 80 
    | Adam | Low  | 55 
    | Ahmad | Low  | 48 
    | John | High | 90 

И следующие данные, которые я ожидал

  |  Option  | 
================================    
    | Name | High | Low |  
===============================| 
    | Ahmad | 90 | 48 | 
    | Smith | 80 | 43 | 
    | John | 90 | 55 | 
    | Adam | 79 | 55 | 

Контроллеры

function detail_data() {    
     $data = array(
      'detail_option' => $this->my_model->model_detail($metadata_code), 
     );     
    $this->load->view('my_view', $data); 
} 

Модели

function model_detail() { 
    $query = $this->db->select('*') 
         ->from('tb_student') 
         ->group_by('name') 
         ->get();  

    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $data) { 
      $result_data[] = $data; 
     } 
     return $result_data; 
    } 
} 

Просмотров

<table> 
    <thead> 
    <tr> 
     <td rowspan="2">Name</td> 
     <td colspan="2">Option</td> 
    </tr> 
    <tr> 
     <td>High</td> 
     <td>Low</td> 
    </tr> 
    </thead> 
    <tbody> 
    <?php 
     foreach ($detail_option as $row) { 
     echo '<tr>'; 
      echo '<td>'.$row->name.'</td>'; 
      echo '<td>'.$row->high.'</td>'; 
      echo '<td>'.$row->low.'</td>'; 
     echo '</tr>'; 
     } 
    ?>    
    </tbody> 
</table> 

ответ

1

Контроллер:

function detail_data() {    
     $data = array(
      'detail_option' => $this->my_model->model_detail() 
     );     
    $this->load->view('my_view', $data); 
} 

Модель:

function model_detail() { 
    $query = $this->db->query("SELECT * FROM `tb_student`"); 

    $result_data = array(); 

    if ($query->num_rows() > 0) { 
     foreach ($query->result() as $data) { 
      $result_data[$data->Name]['Name'] = $data->Name; 
      $result_data[$data->Name][$data->Option] = $data->Value; 
     } 
     return $result_data; 
    } 
} 

HTML:

<table> 
    <thead> 
    <tr> 
     <td rowspan="2">Name</td> 
     <td colspan="2">Option</td> 
    </tr> 
    <tr> 
     <td>High</td> 
     <td>Low</td> 
    </tr> 
    </thead> 
    <tbody> 
    <?php 
     foreach ($detail_option as $row) { 
     echo '<tr>'; 
      echo '<td>'.$row['Name'].'</td>'; 
      echo '<td>'.$row['High'].'</td>'; 
      echo '<td>'.$row['Low'].'</td>'; 
     echo '</tr>'; 
     } 
    ?>    
    </tbody> 
</table> 

ли это то, что вы хотели?

+0

Я попробую ваш scritp –

+0

Я удалил ошибку в имени переменной выше. – Prakash

+0

Данные не отображаются все так пусто –

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