我有2张桌子。 这是我的表格结构
表2,名称为tr_mobo
tmbh_mobo
上输入ex table 2
,它会在table 1
qty_available_mobo
和qty_fisik_mobo
上汇总有效记录。pnjam_mobo
输入table 2
,则会{ - 1}}和+ qty_fisik_mobo
qty_alocated_mobo
它会 - kbali_mobo
和+ qty_alocated_mobo
请给我最好的方法。
我的控制器
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);
}
}
答案 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);
}