Codeigniter、mysql、select_max并在插入另一条记录之前加1



当我将一条新记录插入数据库表时,我需要获取一个名为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);

$resCI_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'),
);

相关内容

  • 没有找到相关文章

最新更新