当我将一条新记录插入数据库表时,我需要获取一个名为el_order的列的现有先前值,添加+1,并使用该新的el_order+1将具有该值的新记录插入该列。
我不能使用autoincrement,因为我需要对该列执行一些操作(重新排序、移动等(,并且必须将其用作整数。
表
ID name el_order
1 1 1
21 bla 2
2 2 3
--NEW-- --NEW-- 3+1 (NEW)
我添加了一个新记录,需要在它的el_order列中插入3+1。。。
我试过这个,但没有运气:
$this->db->select_max('el_order');
$res = $this->db->get('elem_diccio');
$eldi_key = url_title($this->input->post('id'), 'underscore', TRUE);
$el_order = $res+1;
$datos = array(
'ID' => $id,
'el_order' => $el_order,
'name' => $this->input->post('name'),
);
$this->db->insert('elem_diccio', $datos);
就像这个
$this->db->select_max('el_order');
$res = $this->db->get('elem_diccio')->row()->el_order;
$eldi_key = url_title($this->input->post('id'), 'underscore', TRUE);
$el_order = $res+1;
$datos = array(
'ID' => $id,
'el_order' => $el_order,
'name' => $this->input->post('name'),
);
$this->db->insert('elem_diccio', $datos);
$res
是CI_DB_mysqli_result Object
。要获得该列,您需要
$this->db->select_max('el_order');
$res = $this->db->get('elem_diccio')->row();
$el_order = $res->el_order+1;
$datos = array(
'ID' => $id,
'el_order' => $el_order,
'name' => $this->input->post('name'),
);