Передача массива для просмотра в Code Igniter

У меня есть контроллер Customer с этой функцией:

function index(){ $query = $this->db->query(" SELECT ELECTRICITY_BILL_ID,TOTAL_AMOUNT FROM _ELECTRICITY_BILL where CUSTOMER_LOCATION_ID = 16 "); foreach ($query->result() as $row){ $utility_array = array( 'electricity_bill_id' => $row->ELECTRICITY_BILL_ID, 'amount' => $row->TOTAL_AMOUNT); } $this->load->view('Customer',$utility_array); } 

У меня есть вид клиента с этим:

 <?php foreach($utility_array as $row) { echo $row['electricity_bill_id']; echo $row['amount']; echo "</br >"; } ?> 

Я вижу две ошибки:

 Undefined variable: utility_array Invalid argument supplied for foreach() 

смените контроллер.

 foreach ($query->result() as $row){ $utility_array['data'] = array( 'electricity_bill_id' => $row->ELECTRICITY_BILL_ID, 'amount' => $row->TOTAL_AMOUNT); } 

В представлении «Клиент»,

 <?php foreach($data as $row) { echo $row['electricity_bill_id']; echo $row['amount']; echo "</br >"; } ?> 

это должно сработать. попробуй это.

Попробуйте этот код контроллера, он будет работать: –

 function index(){ $query = $this->db->query( "SELECT ELECTRICITY_BILL_ID,TOTAL_AMOUNT FROM _ELECTRICITY_BILL where CUSTOMER_LOCATION_ID = 16" ); foreach ($query->result() as $row){ $utility_array['utility_array'] = array( 'electricity_bill_id' => $row->ELECTRICITY_BILL_ID, 'amount' => $row->TOTAL_AMOUNT ); } $this->load->view('Customer',$utility_array); } 

Если вы передаете массив или объект для просмотра, вы должны назначить ключ для переменной. Используя ключ, вы можете получить значения в представлении. Таким образом, для $ utility_array вы должны назначить значение ключа.

Измените свой контроллер следующим образом:

  $utility_array= array() $query = $this->db->query("SELECT ELECTRICITY_BILL_ID,TOTAL_AMOUNT FROM _ELECTRICITY_BILL where CUSTOMER_LOCATION_ID = 16"); if ($query->num_rows() > 0) { foreach ($query->result() as $row) { $utility_array[] = $row; } } // print_r($utility_array); 

Переход к вашему контроллеру:

  $this->load->view('utility_array',$utility_array); 

На ваш взгляд:

 if (!empty($utility_array)) { foreach($utility_array as $row) { echo $row->electricity_bill_id; echo $row->amount; echo "</br >"; } } 

Попробуйте это

В контроллере

 function index(){ $query = $this->db->query("SELECT ELECTRICITY_BILL_ID,TOTAL_AMOUNT FROM _ELECTRICITY_BILL wincache_refresh_if_changed() WHERE CUSTOMER_LOCATION_ID = 16"); $result = $query->result_array(); if (empty($result)) { $data['utility_array'] = false; } else { $data['utility_array'] = $result; } $this->load->view('Customer',$data); } 

Ввиду

 foreach ($utility_array as $value) { echo $value['ELECTRICITY_BILL_ID']; echo $value['TOTAL_AMOUNT']; echo "<br>"; }