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


Error Undefined variable: result + Error Invalid argument supplied for foreach() in CodeIgniter 2

嗨,我试图将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;
}

我已经尝试过这个和这个,但仍然没有解决我的问题。

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

试试这个

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);
}

控制器中的问题

将数据存储在$data['result'] 变量中,但不传递给 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);
}

这项工作很好

将您的模型更改为此

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()->result();

试试这个: 控制器

  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>