entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Problema con Consulta a Base de Datos en CodeIgnite

Hola, estoy programando en codeigniter mi sitio web y quiero insertar una fila y una vez insertada esta quiero tener el valor del campo id de esa fila:
mi codigo es este::

 function set_seccion_activa($data){
        #Insertando una nueva Seccion Activa
        $this->db->insert('secciones_activas', $data);              
        $this->db->close();
        $id = $this->get_id($data['nombre_mostrar']);
        echo $id;
    }
    function get_id($nombreSeccion){
        $this->db->select('id_seccion');
    $consulta = $this->db->get_where('secciones_activas',array('nombre_mostrar' => $nombreSeccion),1,1);        
    $fila = $consulta->row();       
    $this->db->close();
    return $fila->id_seccion;       
    }

me de error la primera vez que inserto, pero si actualiza si me sale la seleccion, es como si luego de insertar la tabla no se refrescara o algo parecido.
Saludos Dairon

1 Respuesta

3votos

Leonardo-Tadei Puntos227320

Hola Dairón,

no es buena la estretegia de crear otra función que haga un SELECT para obtener el ID del nuevo registro.

Podrías hacer directamente:

function set_seccion_activa($data){
        #Insertando una nueva Seccion Activa
        $this->db->insert('secciones_activas', $data);              
        $this->db->close();
        $id = $this->db->insert_id();
        echo $id;
 }

ya que $this->db->insert_id() devuelve el ID asignado por el último INSERT.

PD: sería mejor si la función devolviese el valor del último ID en vez de tener un echo adentro, así te permitiría que sea el llamador de la función quien decida si se debe ver el valor o no.

0voto

dairon comentado

el echo lo utilizo como mostrador al igual que el var_dump para ver que esta sucediendo, esos codigos están dentro de mi modelo, ahora voy a probar lo que me pones ahí. Garcias

0voto

dairon comentado

Genial funcionó, solo un detalle y es el cierre de la db, es decir el código quedaría así:

function set_seccion_activa($data){
        #Insertando una nueva Seccion Activa
        $this->db->insert('secciones_activas', $data);                      
        $id = $this->db->insert_id();
        $this->db->close();
        echo $id;
    }

Gracias profe.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta