我的数据库中有两个表,监视器[pk = idMonitor]和monitor_data [pk = idMonitor_data]

Please click you can see the tables fields here。如您所见,我将数组数据放在表monitor_data中。

我想更新每个idinventory where monitor_data.idMonitor = $id的条件。

但是首先,我想显示数据库中“监视日期”,“标识库存”和“条件”的当前数据到我的视图。

我的控制器

public function edit($id=0) {
     $dataa = $this->monitor_m->get_record(array('monitor_data.idMonitor'=>$id),true);


     $this->data->monitordate = $dataa->monitordate;
     $this->data->condition = $dataa->condition; <-line 20

     $this->data->detail = $this->monitor_m->get_record(array('monitor_data.idMonitor'=>$id),true);

     $this->template->set_title('SMIB | Monitoring')
     ->render('monitor_edit',$this->data);
}


我的看法(monitor_edit)


<?php echo form_open(site_url("monitor/ubah"),'data-ajax="false"'); ?>
        <?php foreach ($detail as $items): ?>
            <h4><?php echo '[ '.$items['idinventory'].' ] '?> </h4>
            <?php echo form_label ('Condition   : ');
                  echo form_dropdown('condition', array('good'=>'Good','broke'=>'Broken','lost'=>'Lost'),@$items['condition']);
         ?>
        <?php endforeach; ?>
       <?php echo form_close(); ?>


我的模特

class Monitor_m extends MY_Model {

    public function __construct(){
        parent::__construct();
        parent::set_table('monitor','idMonitor');
    }

public function get_record($id = 0,$get_user = FALSE) {
        $this->db->where($id);
        if ($get_user){
            $this->db->join('monitor_data','monitor_data.idMonitor = monitor.idMonitor');
            $this->db->join('inventory','inventory.idinventory = monitor_data.idinventory');
            $this->db->join('user','user.id_user = monitor.id_user');

        }
         $data = parent::get_array();

        return $this->improve_data($data);

   }


这是我的问题:对于控制器中的monitordate代码,它的工作正常,但我不断收到条件代码错误
也许是因为我使用'monitor_data.idMonitor'作为我的参数$id而不是idinventory。我如何使用2个参数,例如where idMonitor=$id and idinventory=$idiventory

我解释正确吗?


  严重性:通知消息:试图获取非对象的属性
  文件名:controllers / monitor.php行号:20


请帮助我,我不知道我的控制器出了什么问题:(我一直在寻找解决方案,但这些都不起作用。:(

最佳答案

如果您可以获取监视日期但无法获得条件,这很奇怪。

您可以将控制器编辑成这样吗?

public function get_record($id = 0,$get_user = FALSE) {
        $this->db->where($id);
        if ($get_user){
            $this->db->join('monitor_data','monitor_data.idMonitor = monitor.idMonitor');
            $this->db->join('inventory','inventory.idinventory = monitor_data.idinventory');
            $this->db->join('user','user.id_user = monitor.id_user');

        }
       //  $data = parent::get_array();
           $data = $this->db->result_array();
           print_r($data);
           echo $this->db->last_query();
           exit;

        return $this->improve_data($data);

   }

10-08 00:37