【问题标题】:Display an array data from two tables in codeigniter在 codeigniter 中显示两个表中的数组数据
【发布时间】:2017-03-12 23:25:12
【问题描述】:

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

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

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

但首先我想将数据库中的“monitordate”、“idinventory”和“condition”的当前数据显示到我的视图中。

我的控制器

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 代码工作正常,但我不断收到 condition 代码错误

也许是因为我使用'monitor_data.idMonitor' 作为我的参数$id 而不是idinventory。我如何使用 2 个参数,例如 where idMonitor=$id and idinventory=$idiventory

我解释得对吗?

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

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

【问题讨论】:

标签: php mysql arrays codeigniter


【解决方案1】:

如果你能得到monitordate却不能得到condition,那就很奇怪了。

你能把你的控制器编辑成这样吗?

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

   }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 2019-09-10
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多