Php Codeigniter,mysql,在插入另一条记录之前选择_max并添加1

Php Codeigniter,mysql,在插入另一条记录之前选择_max并添加1,php,mysql,codeigniter,Php,Mysql,Codeigniter,在将新记录插入数据库表时,我需要获取一个名为el_order的列的现有上一个值,并添加+1,然后使用该新el_order+1在该列中插入具有该值的新记录 我不能使用autoincrement,因为我需要对该列执行一些操作(重新排序、移动等),并且必须将其用作整数。 我的英语不好,所以我会这样解释: 桌子 我添加了一条新记录,需要在它的el_order列中插入3+1 我尝试过这个,但没有成功: $this->db->select_max('el_order'); $res = $thi

在将新记录插入数据库表时,我需要获取一个名为el_order的列的现有上一个值,并添加+1,然后使用该新el_order+1在该列中插入具有该值的新记录

我不能使用autoincrement,因为我需要对该列执行一些操作(重新排序、移动等),并且必须将其用作整数。 我的英语不好,所以我会这样解释:

桌子

我添加了一条新记录,需要在它的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);

  • 请查看以上两个链接以获取您寻求的答案。谢谢

    是一个
    CI\u DB\u mysqli\u结果对象
    。要获得该列,您需要

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

    看起来很像一个自动递增的主键…我编辑了我的问题:我不能使用自动递增,因为我需要对该列执行一些操作(重新排序、移动等),并且必须将其用作整数。粘贴答案比链接更好如果是这样的话,我还必须复制解释部分:)
    $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'),
    );