Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter foreach$行,尝试获取非对象的属性时出错_Php_Codeigniter_Foreach - Fatal编程技术网

Php codeigniter foreach$行,尝试获取非对象的属性时出错

Php codeigniter foreach$行,尝试获取非对象的属性时出错,php,codeigniter,foreach,Php,Codeigniter,Foreach,这是在我的控制器里面 if ( $training_code == null || $batch_no == null) { $data = $this->_public_data(); $no_reg = $this->sys_model->get_registration($this->session->userdata('admin'))->no_reg; $data

这是在我的控制器里面

if ( $training_code == null || $batch_no == null)
        {
            $data = $this->_public_data();
            $no_reg = $this->sys_model->get_registration($this->session->userdata('admin'))->no_reg;
            $data['trainingl_list']= $this->sys_model->list_training_by_user($no_reg);
        }
$data=$this->model_name->list_training_by_user($no_reg);
$this->load->view("your_view_name",array('trainingl_list'=>$data));
这是在我的模型里面

function list_training_by_user($no_reg)
{
    $this->db->where('no_reg', $no_reg);
    return $this->db->get('tbl_peserta_training')->row(); 
}
这就是我的观点

<?php foreach($trainingl_list as $row){
echo $row->kd_training; //<-- this is 13th line
echo $row->no_batch; //<-- this is 19th line
?>
如果我只是在视图中回显$noreg(通过将其放入$data['noreg']=$no_reg),它没有错误,但是使用$training_list数组,并将其放入视图中的foreach,我就得到了这些错误
我遗漏了什么吗?

是否
$training\u list
来自
list\u training\u by\u user()
?如果是这样,
list\u training\u by\u user()
只返回一行,而不返回行列表。因此,迭代该行是无效的。您可能需要尝试以下方法:

function list_training_by_user($no_reg)
{
    $this->db->where('no_reg', $no_reg);
    $result = $this->db->get('tbl_peserta_training');
    $results = array();
    while ($row = $result->row()) {
      $results[] = $row;
    }
    return $results;
}
编辑

更好的是,您应该返回
result()
,它似乎是以下内容的一个实例:

编辑2

由于我的第一个示例和
result()
方法(参见注释)的内存问题,我们一次只能加载一个结果。您只需返回查询并从该对象一次提取一行即可

function list_training_by_user($no_reg)
{
    $this->db->where('no_reg', $no_reg);
    return $this->db->get('tbl_peserta_training'); 
}
在你看来:

$results = $this->sys_model->list_training_by_user($no_reg);
while ($row = $results->row()) {
  echo $row->kd_training; //<-- this is 13th line
  echo $row->no_batch; //<-- this is 19th line
}
$results=$this->sys\u model->按用户列出培训($no\u reg);
而($row=$results->row()){

echo$row->kd_training;//没有批处理;//是
$training_list
来自
list_training_by_user()
?如果是这样,
list_training_by_user()
只返回一行,而不是一列行。因此,对该行进行迭代是无效的。您可能必须尝试以下操作:

function list_training_by_user($no_reg)
{
    $this->db->where('no_reg', $no_reg);
    $result = $this->db->get('tbl_peserta_training');
    $results = array();
    while ($row = $result->row()) {
      $results[] = $row;
    }
    return $results;
}
编辑

更好的是,您应该返回
result()
,它似乎是以下内容的一个实例:

编辑2

由于我的第一个示例和
result()
方法(请参见注释)存在内存问题,我们一次只能加载一个结果。您只需返回查询并从该对象一次提取一行即可

function list_training_by_user($no_reg)
{
    $this->db->where('no_reg', $no_reg);
    return $this->db->get('tbl_peserta_training'); 
}
在你看来:

$results = $this->sys_model->list_training_by_user($no_reg);
while ($row = $results->row()) {
  echo $row->kd_training; //<-- this is 13th line
  echo $row->no_batch; //<-- this is 19th line
}
$results=$this->sys\u model->按用户列出培训($no\u reg);
而($row=$results->row()){
echo$row->kd_training;//模型中无批次;//:

function list_training_by_user($no_reg)
{
   $this->db->where('no_reg', $no_reg);
   $result=$this->db->get('tbl_peserta_training'); 
   return $result->$result_array();

}
控制器

if ( $training_code == null || $batch_no == null)
        {
            $data = $this->_public_data();
            $no_reg = $this->sys_model->get_registration($this->session->userdata('admin'))->no_reg;
            $data['trainingl_list']= $this->sys_model->list_training_by_user($no_reg);
        }
$data=$this->model_name->list_training_by_user($no_reg);
$this->load->view("your_view_name",array('trainingl_list'=>$data));
在视图中使用它

<?php
foreach($trainingl_list as $row){
   echo $row['kd_training']; //<-- this is 13th line
   echo $row['no_batch']; //<-- this is 19th line
}
?>
foreach($trainingl_list as $row){
   echo $row->kd_training; //<-- this is 13th line
   echo $row->no_batch; //<-- this is 19th line
}
?>
控制器:与earliar相同

在视图中使用它

<?php
foreach($trainingl_list as $row){
   echo $row['kd_training']; //<-- this is 13th line
   echo $row['no_batch']; //<-- this is 19th line
}
?>
foreach($trainingl_list as $row){
   echo $row->kd_training; //<-- this is 13th line
   echo $row->no_batch; //<-- this is 19th line
}
?>
foreach($trainingl\u列表为$row){
echo$row->kd_training;//无批次//
在型号中:

function list_training_by_user($no_reg)
{
   $this->db->where('no_reg', $no_reg);
   $result=$this->db->get('tbl_peserta_training'); 
   return $result->$result_array();

}
控制器

if ( $training_code == null || $batch_no == null)
        {
            $data = $this->_public_data();
            $no_reg = $this->sys_model->get_registration($this->session->userdata('admin'))->no_reg;
            $data['trainingl_list']= $this->sys_model->list_training_by_user($no_reg);
        }
$data=$this->model_name->list_training_by_user($no_reg);
$this->load->view("your_view_name",array('trainingl_list'=>$data));
在视图中使用它

<?php
foreach($trainingl_list as $row){
   echo $row['kd_training']; //<-- this is 13th line
   echo $row['no_batch']; //<-- this is 19th line
}
?>
foreach($trainingl_list as $row){
   echo $row->kd_training; //<-- this is 13th line
   echo $row->no_batch; //<-- this is 19th line
}
?>
控制器:与earliar相同

在视图中使用它

<?php
foreach($trainingl_list as $row){
   echo $row['kd_training']; //<-- this is 13th line
   echo $row['no_batch']; //<-- this is 19th line
}
?>
foreach($trainingl_list as $row){
   echo $row->kd_training; //<-- this is 13th line
   echo $row->no_batch; //<-- this is 19th line
}
?>
foreach($trainingl\u列表为$row){
echo$row->kd_training;//无批次//

BTW,如果您还没有,请查看更多方法。第一个方法出现了
致命错误:允许的内存大小134217728字节已用尽(尝试分配36字节)在第142行的C:\Program Files\xampp\htdocs\sys\etraining\models\sys_model.php中,第二个得到了相同的错误:sHmm…我可以理解为什么第一个会得到这个结果,但是第二个我会假设CodeIgnitor库延迟加载结果。我很惊讶。啊…根据文档,
结果()
方法的作用与我的第一个代码示例基本相同。我不确定他们为什么会这样做。我为自己的项目构建了库,延迟加载会导致迭代器。这里发生的事情是将太多的结果加载到内存中。我将编辑我的帖子,向您展示另一个解决方案。随着edit 2的更新,我将恐怕无法完成,因为$no_reg未定义…:|顺便说一句,如果您还没有,请查看更多方法。第一个方法出现
致命错误:允许的内存大小134217728字节已用尽(尝试分配36字节)在第142行的C:\Program Files\xampp\htdocs\sys\etraining\models\sys_model.php中,第二个得到了相同的错误:sHmm…我可以理解为什么第一个会得到这个结果,但是第二个我会假设CodeIgnitor库延迟加载结果。我很惊讶。啊…根据文档,
结果()
方法的作用与我的第一个代码示例基本相同。我不确定他们为什么会这样做。我为自己的项目构建了库,延迟加载会导致迭代器。这里发生的事情是将太多的结果加载到内存中。我将编辑我的帖子,向您展示另一个解决方案。随着edit 2的更新,我将恐怕无法完成,因为$no_reg未定义…:|我们已经完成了(请参阅我答案上的注释)。显然
result()
result_array()
方法将所有结果加载到内存中,这会导致内存限制错误,导致结果集过大。请参阅CodeIgnitor文档。此函数以对象数组的形式返回查询结果…(我认为它不是迭代器,应该是迭代器)。在这个框架内,可能有更好的方法来避免内存问题,我只是对CodeIgnitor不太熟悉。我们已经讨论过了(参见我答案上的注释)。显然,
result()
result\u array()
方法将所有结果加载到内存中,这会导致内存限制错误,导致结果集过大。请参阅CodeIgnitor文档。此函数以对象数组的形式返回查询结果…(我认为它不是迭代器,应该是迭代器).在这个框架内可能有一种更好的方法来避免内存问题,我只是对CodeIgnitor不太熟悉。