具有下拉代码的多个插入代码

时间:2018-01-15 03:20:39

标签: php codeigniter

我有3个名为frm_data_aset的表,frm_monitor,frm_lokasi 我想要,如果我插入frm_data_aset列monitor_aset与tabel监视器的下拉列表和来自tabel lokasi的lokasi。在表监视器列lokasi更新数据相同,我从tabel data_Aset中插入 我的结构:
enter image description here
enter image description here

  

现在我收到错误:   'where子句'中的未知列'frm_monitor'   更新frm_monitor SET lokasi_monitor ='123'WHERE frm_monitor为空

这是我的控制器:

{
    $this->_rules();
    if ($this->form_validation->run() == FALSE) {
        $this->create();
    } else {
        $data = array(
    'lokasi_aset' => $this->input->post('lokasi_aset',TRUE),
    'monitor_aset' => $this->input->post('monitor_aset',TRUE),
    );
        $id= $this->input->post('kd_monitor', TRUE);
        $data = array(
        'lokasi_monitor' => $this->input->post('lokasi_aset'),
    );
        $this->M_monitor->update_lokasi($id,$data);
        $this->M_data_aset->insert($data);
        redirect(site_url('data_aset'));
    }
}

这是我的模特M_monitor

function update_lokasi($id,$data){
$this->db->where('frm_monitor', $id);
$this->db->update('frm_monitor', $data);
}

这个我的下拉监视器在表单中插入data_aset

<option value="0">Pilih Monitor</option>
            <?php
                $monitor = $this->db->get('frm_monitor')->result();
                foreach ($monitor as $row){
                echo "<option value='$row->kd_monitor' ";
                echo $row->kd_monitor==$monitor_aset?'selected':'';
                echo ">".  strtoupper($row->kd_monitor)."</option>";
                }
            ?>

2 个答案:

答案 0 :(得分:2)

尝试像这样更改模型查询

    function update_lokasi($id,$data){
$this->db->where('id_monitor', $id);
$this->db->update('frm_monitor', $data);
}

在此之前确保控制器中'kd_monitor'的帖子不为空

答案 1 :(得分:0)

您应该将传递给$data的{​​{1}}变量重命名,因为它将覆盖仅$this->M_monitor->update_lokasi()数组传递给$data的{​​{1}}在上面。或者甚至更好地尝试重命名$this->M_data_aset->insert()以防止混淆。

修改您的控制器:

'lokasi_monitor'

并在条件查询上将$data更改为{ $this->_rules(); if ($this->form_validation->run() == FALSE) { $this->create(); } else { $data_aset = array( 'lokasi_aset' => $this->input->post('lokasi_aset',TRUE), 'monitor_aset' => $this->input->post('monitor_aset',TRUE), ); $id = $this->input->post('kd_monitor', TRUE); $data_monitor = array( 'lokasi_monitor' => $this->input->post('lokasi_aset'), ); $this->M_monitor->update_lokasi($id,$data_monitor); $this->M_data_aset->insert($data_aset); redirect(site_url('data_aset')); } }

'frm_monitor'