【问题标题】:Codeigniter view shows 0 recordCodeigniter 视图显示 0 条记录
【发布时间】:2012-10-12 00:40:40
【问题描述】:

我在ms_kategori_material 表中插入了 5 行,并在此处制作了一些模型

function read()
{   
    $query = $this->db->get('ms_kategori_material');

    if($query->num_rows()>0)
    {            
        foreach ($query->result_array() as $value) {
            echo $value['Kode_Kategori_Material_Jasa'];
            echo $value['Nama_Material_Jasa'];
        }
        return $value;
    }
    else
    {
        return null;
    }
}

和控制器

function index()
{
      $data['kirim'] = $this->m_kategorimaterial->read();
      echo $data; //returns KKMJ001batuKKMJ002batuKKMJ003batuKKMJ004batuKKMJ005batuArray
      $this->load->view('v/vkategorimaterial',$data);

}

和观点

<?php  
                if ( !empty($kirim) ) {  
                 $no = 1;   
                 foreach ($kirim as $row) { ?>  
                 <tr id="row">  
                  <td id="no"><?php echo $no;?></td>  
                  <td id="judul"><?php echo $row->Kode_Kategori_Material_Jasa;?></td>  
                  <td id="kategori"><?php echo $row->Nama_Material_Jasa;?></td>  
                    </tr>  ?>
                    <?php  
                     $no++;  
                    }  
                   } else { ?>  
                                <tr id="row">  
                                <td colspan="6" align="center">Data tidak ditemukan</td>  
                               //the screen shows 'data tidak ditemukan' </tr>  
                            <?php  
                   }  
                   ?>  

这太令人困惑了,因为我可以在控制器中看到数据,然后将它们传递给视图,视图说没有收到数据

【问题讨论】:

  • 而不是 if(!empty) 试试 if(isset($kirim))
  • @rickcalder 它返回错误为 foreach() 和未定义变量提供的参数无效:kirim

标签: php codeigniter activerecord foreach


【解决方案1】:

在你的model

if($query->num_rows()>0)
{            
    foreach ($query->result_array() as $value) {
        echo $value['Kode_Kategori_Material_Jasa'];
        echo $value['Nama_Material_Jasa'];
    }
    return $value;
}

错了,应该是

if($query->num_rows()>0)
{            
    return $query->result();
}

在你的controller 中你应该有

function index()
{
  $this->load->model('m_kategorimaterial'); // load it if it's not autoloaded
  $data['kirim'] = $this->m_kategorimaterial->read();
  $this->load->view('v/vkategorimaterial',$data);
}

【讨论】:

  • 这里,你可以在这里下载完整代码mediafire.com/?5bawsym990aae19 对不起,我找不到我的房间来讨论这个话题
  • 您正在使用$this-&gt;load-&gt;view('v/vkategorimaterial',$data);,但您在view 文件夹中有vkategorimaterial.php,所以它应该是$this-&gt;load-&gt;view('vkategorimaterial
  • 另请阅读this article,以更有条理的方式管理您的views
  • 在你的controller你的index函数中必须包含$data['kirim'] = $this-&gt;m_kategorimaterial-&gt;read(); $this-&gt;load-&gt;view('vkategorimaterial',$data);
  • 不,vkategorimaterial.php 位于文件夹 views/v/vkategorimaterial.php
【解决方案2】:

只需重新阅读您的代码。您正在返回 $value 但从未填充它。见下文。

{   
    $query = $this->db->get('ms_kategori_material');

    if($query->num_rows()>0)
    {            
        $value = $query->result(); // or result_array() but you're using it as an object in the view not an array.
        return $value;
    }
    else
    {
        return null;
    }
}

【讨论】:

    【解决方案3】:

    您实际上并没有在模型中返回结果,

    替换

    foreach ($query->result_array() as $value) 
    {
     echo $value['Kode_Kategori_Material_Jasa'];
     echo $value['Nama_Material_Jasa'];
    }
    

    if($query->num_rows()>0)
    {            
      return $query->result();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 2011-07-13
      • 2018-03-27
      相关资源
      最近更新 更多