错误未定义的变量:结果+错误在CodeIgniter 2中为foreach()提供的参数无效

时间:2016-02-03 07:30:48

标签: php codeigniter foreach error-handling exception-handling

您好我试图在我的视图中放置foreach块,但我在这里遇到了2个错误:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: result

A PHP Error was encountered

Severity: Warning

Message: Invalid argument supplied for foreach()

以下是我的观点:

<?php foreach($result as $data_barang):?>
 <tr>
  <td><?php echo $data_barang->barang.kode_item;?></td>
  <td><?php echo $data_barang->nama_item;?></td>
  <td><?php echo $data_barang->nama_ruang;?></td>
  <td><?php echo $data_barang->jml_item_kondisi;?></td>
  <td><?php echo $data_barang->kondisi;?></td>
 </tr>
<?php endforeach;?>

如果需要,我会将模型和控制器放在这里:

控制器:

public function index(){
    // load data barang yg akan ditampilkan
    $data['result']=$this->admin_model->get_data_table()->result_array();

    // load view
    $this->load->view('dashboard_admin');
}

*注意:我也试过了->result()

模特:

function get_data_table(){
    $query_result = $this->db->query('SELECT barang.kode_item, nama_item, nama_ruang, jml_item_kondisi, kondisi 
        FROM barang 
        INNER JOIN info_barang ON barang.kode_item = info_barang.kode_item 
        INNER JOIN (
            SELECT ruang.nama_ruang, campur_table.kode_item 
            FROM ruang 
            INNER JOIN rekap_isi_ruang AS campur_table ON campur_table.nomor_ruang = ruang.nomor_ruang) AS barang_campur 
        ON barang.kode_item = barang_campur.kode_item');
    return $query_result;
}

我已尝试Ideone Demothis,但仍无法解决我的问题。

顺便说一下,如果有任何看起来不熟悉的单词,我很抱歉。感谢

4 个答案:

答案 0 :(得分:2)

试试这个

public function index(){
    // load data barang yg akan ditampilkan
    $data['result']=$this->admin_model->get_data_table()->result_array();

    // load view
    $this->load->view('dashboard_admin',$data);
}

答案 1 :(得分:1)

试试这个::     //控制器

  public function index(){

        $data['result']=$this->admin_model->get_data_table()->result_array();


        $this->load->view('dashboard_admin',$data);
    }

//查看

<?php
 if(!empty(result)) {
 foreach($result as $data_barang):?>
 <tr>
  <td><?php echo $data_barang->barang.kode_item;?></td>
  <td><?php echo $data_barang->nama_item;?></td>
  <td><?php echo $data_barang->nama_ruang;?></td>
  <td><?php echo $data_barang->jml_item_kondisi;?></td>
  <td><?php echo $data_barang->kondisi;?></td>
 </tr>
<?php

 endforeach;
} else { ?>
<tr>
  <td colspan="5">Some message here</td>
 </tr>
  

答案 2 :(得分:1)

控制器中的问题

您将数据存储在$ data [&#39;结果&#39;]变量中,但不传递给View $ data变量 所以你在控制器

中传递控制器中的$ data变量
public function index(){
// load data barang yg akan ditampilkan
$data['result']=$this->admin_model->get_data_table()->result_array();

// load view
$this->load->view('dashboard_admin',$data);
}

这项工作很好

答案 3 :(得分:1)

  

将您的模型更改为此

function get_data_table(){
    $query_result = $this->db->query('SELECT barang.kode_item, nama_item, nama_ruang, jml_item_kondisi, kondisi 
        FROM barang 
        INNER JOIN info_barang ON barang.kode_item = info_barang.kode_item 
        INNER JOIN (
            SELECT ruang.nama_ruang, campur_table.kode_item 
            FROM ruang 
            INNER JOIN rekap_isi_ruang AS campur_table ON campur_table.nomor_ruang = ruang.nomor_ruang) AS barang_campur 
        ON barang.kode_item = barang_campur.kode_item')->result();
    return $query_result;
}

如果你想要数组使用result_array()而不是query() - &gt; result();