如何在第二个表中更新库存

时间:2018-02-08 03:02:39

标签: php codeigniter codeigniter-3

我有2张桌子。 这是我的表格结构

表1,名称为tbl_mobo tbl_mobo

表2,名称为tr_mobo

tr_mobo

  1. 我可以在tmbh_mobo上输入ex table 2,它会在table 1 qty_available_moboqty_fisik_mobo上汇总有效记录。
  2. 如果我在pnjam_mobo输入table 2,则会{ - 1}}和+ qty_fisik_mobo
  3. 我想输入qty_alocated_mobo它会 - kbali_mobo和+ qty_alocated_mobo
  4. 请给我最好的方法。

    我的控制器

    qty_fisik_mobo

    我的模型表2(M_mobo)

        public function create_action() 
    {
        $this->_rules();
    
        if ($this->form_validation->run() == FALSE) {
            $this->create();
        } else {
            $data = array(
        'tmbh_mobo' => $this->input->post('tmbh_mobo',TRUE),
        'pnjam_mobo' => $this->input->post('pnjam_mobo',TRUE),
        'kbali_mobo' => $this->input->post('kbali_mobo',TRUE),
        );
            $mobo = $this->input->post('merk', TRUE);
            $av_mobo = $this->input->post('tmbh_mobo', TRUE);
            $al_mobo = $this->input->post('pnjam_mobo', TRUE);
    
            $this->M_mobo->av_mobo($mobo,$av_mobo,$al_mobo);
            $this->M_trmobo->insert($data);
        }
    }
    

1 个答案:

答案 0 :(得分:0)

你可以从中取出条件。这些只会更新每种情况下的必填字段:

function av_mobo($mobo, $av_mobo, $al_mobo) { 
    if (!empty($av_mobo)) { // if ditambah
        $this->db->set('qty_available_mobo', 'qty_available_mobo + ' . (int) $av_mobo, FALSE);
        $this->db->set('qty_fisik_mobo', 'qty_fisik_mobo + ' . (int) $av_mobo, FALSE);
    }
    if (!empty($al_mobo)) { // if dipinjam
        $this->db->set('qty_alocated_mobo', 'qty_alocated_mobo + ' . (int) $al_mobo, FALSE);
        $this->db->set('qty_fisik_mobo', 'qty_fisik_mobo - ' . (int) $al_mobo, FALSE);
    }

    $this->db->where('tipe_mobo', $mobo);
    $this->db->update('tbl_mobo');
    return $this->db->affected_rows() > 0 ? TRUE : FALSE;
}

然后只有在更新tbl_mobo数据时才进行插入,更改:

$this->M_mobo->av_mobo($mobo,$av_mobo,$al_mobo);
$this->M_trmobo->insert($data);

到:

if ($this->M_mobo->av_mobo($mobo,$av_mobo,$al_mobo) == TRUE)
{
    $this->M_trmobo->insert($data);
}