codeigniter,mysql,选择\u max不同列值时插入

q35jwt9p  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(408)

继续我之前的问题,已经解决了。。。我在模型中有以下代码:

$this->db->select_max('ELDI_Orden');
        $res = $this->db->get('elementos_diccionario')->row()->ELDI_Orden;

        $eldi_key = url_title($this->input->post('eldi_key'), 'underscore', TRUE);
        $eldi_orden = $res+1;

        $datos = array(
            'ELDI_Key' => $eldi_key,
            'ELDI_Orden' => $eldi_orden,
            'ELDI_Display' => $this->input->post('eldi_display'),
            'ELDI_SuDiccionario' => $this->input->post('eldi_sudiccionario'),
        );

        $this->db->insert('elementos_diccionario', $datos);

但只有当eldièu sudiccinario有不同的价值观时我才需要它:

看这张图,我需要下一个eldièorden(eldièu sudiccionario 1)是5而不是6。

ELDI_SuDIccionario    ELDI_Orden
        1                  1
        1                  2
        1                  3
        1                  4
    --NEW-- 1          --NEW-- 5
        2                  1
        2                  2
       ...                ...
        2                  5

我希望你能理解我,我的英语很差。
谢谢你的时间。

brvekthn

brvekthn1#

希望这能帮助您:
只需在查询中添加where条件where ELDI_SuDiccionario = 1 ```
$this->db->select_max('ELDI_Orden');
$this->db->where('ELDI_SuDiccionario',1);

/*If u want using with post
$eld_id = $this->input->post('eldi_sudiccionario');
$this->db->where('ELDI_SuDiccionario',$eld_id);

  • /

$res = $this->db->get('elementos_diccionario')->row()->ELDI_Orden;

$eldi_key = url_title($this->input->post('eldi_key'), 'underscore', TRUE);
$eldi_orden = $res+1;

$datos = array(
'ELDI_Key' => $eldi_key,
'ELDI_Orden' => $eldi_orden,
'ELDI_Display' => $this->input->post('eldi_display'),
'ELDI_SuDiccionario' => $this->input->post('eldi_sudiccionario'),
);

$this->db->insert('elementos_diccionario', $datos);

更多信息:https://www.codeigniter.com/user_guide/database/query_builder.html
sy5wg1nm

sy5wg1nm2#

你需要加上 where 你的条件 select_max ```
$this->db->select_max('ELDI_Orden')
->where('ELDI_SuDiccionario', $this->input->post('eldi_sudiccionario'));

7kqas0il

7kqas0il3#

就这样

$this->db->select_max('ELDI_Orden');
    $res = $this->db->where('ELDI_SuDIccionario',$this->input->post('eldi_sudiccionario'))->get('elementos_diccionario')->row()->ELDI_Orden;

    $eldi_key = url_title($this->input->post('eldi_key'), 'underscore', TRUE);
    $eldi_orden = $res+1;

    $datos = array(
        'ELDI_Key' => $eldi_key,
        'ELDI_Orden' => $eldi_orden,
        'ELDI_Display' => $this->input->post('eldi_display'),
        'ELDI_SuDiccionario' => $this->input->post('eldi_sudiccionario'),
    );

    $this->db->insert('elementos_diccionario', $datos);

相关问题