我想在codeigniter中显示数据库中的值,但我得到了错误

时间:2018-01-17 06:54:50

标签: php codeigniter

我想在CodeIgniter中显示视图中的值,但是我遇到了一些错误,例如尝试在非对象上获取属性。我认为我的代码是正确的,但我收到了错误。以下是我的代码。

控制器:

public function trainer($id)
{

            $user_record = $this->db->query("select * from usr_data where usr_id=$id")->result();
            $data['title'] = 'trainer Dashboard';
            $data['user_record'] = null;
            $data['active_courses'] = [];
             $data['inprogress'] = [];



            if(count($user_record)) {
                $user_record = $user_record[0];
                $data['title'] = ucwords($user_record->firstname).' Dashboard';
                $data['user_record'] = $user_record;




                $active_courses = $this->base_model->getTrainercourseAll($id);
                $data['active_courses'] = $active_courses;


                $inprogress = $this->base_model->getstaffinprogress($id);
                $data['inprogress'] = $inprogress;

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

模型:

 public function getstaffinprogress($user_id) {

           $result=$this->executeSelectQuery("select AVG(m.percentage) from object_data o, ut_lp_marks m where o.obj_id=m.obj_id and o.type='crs' and m.status=1 ");    
    return $result;
   }

视图:

<h3>Avg inprogress:<?php echo "<span style='color:#ff00ff;font-family:verdana;'>".$inprogress->percentage."</span>";?></h3>

我想显示来自database.above代码的列百分比是在控制器,模型和视图中。我认为我的控制器代码是错误的。

任何人帮我摆脱这个错误。我想在CodeIgniter中的视图中显示一个值,但是我遇到了一些错误,比如尝试在非对象上获取属性。我认为我的代码是正确的,但我收到了错误。以下是我的代码。

2 个答案:

答案 0 :(得分:0)

public function getstaffinprogress($user_id) {
     $result = array();
     $query=$this->db->query("select AVG(m.percentage) from object_data o, ut_lp_marks m where o.obj_id=m.obj_id and o.type='crs' and m.status=1 ");
     foreach($query->result() as $row){
         $result = $row;
     }
     return $result;
}

在视图中打印之前,还要检查$inprogress->percentage是否存在。

答案 1 :(得分:0)

在您的视图文件中尝试此操作

if(isset($inprogress)){
        echo  $inprogress->percentage;
}

然后你的代码看起来像这样,

<h3>Avg inprogress:<?php  if(isset($inprogress)){ echo "<span style='color:#ff00ff;font-family:verdana;'>".$inprogress->percentage."</span>";}?></h3>

然后调用控制器功能。我认为进展不是第一次。

如果它不起作用,请尝试在控制器中使用var_dump($ inprogress)并检查值和类型。

在您的模型中尝试此代码。查询似乎也不正确

 public function getstaffinprogress($user_id) {

     $this->db->select_avg('ut_lp_marks.percentage'); 
     $this->db->where('ut_lp_marks.obj_id', $user_id);
     $this->db->where('object_data.type', 'crs');
     $this->db->where('ut_lp_marks.status', 1);
     $this->db->join('object_data', 'object_data.obj_id = ut_lp_marks.obj_id');
     $query = $this->db->get('ut_lp_marks'); 

     return $query->result_array();
}

我假设您的数据库是ut_lp_marks。然后var_dump数组和检查数据首先是正确的。然后访问数组元素。