Codeigniter, mysql, select_max… Вставить, когда другое значение столбца

0

Продолжение моего предыдущего вопроса, который был решен... У меня есть этот код в модели:

$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_SuDiccinario имеют разные значения: Изображение 174551

Глядя на этот образ, мне нужен следующий ELDI_Orden (из ELDI_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

Надеюсь, ты меня понимаешь, мой английский очень плохой.

Спасибо за ваше время.

  • 2
    добавить где caluse $this->db->where('ELDI_SuDiccionario',1);
Теги:
codeigniter

3 ответа

1
Лучший ответ

Вам нужно добавить, where условие для вашего select_max

$this->db->select_max('ELDI_Orden')
         ->where('ELDI_SuDiccionario', $this->input->post('eldi_sudiccionario'));
1

Надеюсь, что это поможет вам :

Просто добавьте, где условие к вашему запросу, где 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

1

именно так

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню