Foros del Web » Programando para Internet » PHP » CodeIgniter »

Problemas al insertar un registro

Estas en el tema de Problemas al insertar un registro en el foro de CodeIgniter en Foros del Web. Hola, cuando inserto un registro no hay problema, todo transcurre con normalidad, el problema viene cuando al registrar registro algo que ya registré antes, lo ...
  #1 (permalink)  
Antiguo 04/04/2015, 15:00
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años, 6 meses
Puntos: 8
Problemas al insertar un registro

Hola, cuando inserto un registro no hay problema, todo transcurre con normalidad, el problema viene cuando al registrar registro algo que ya registré antes, lo normal es que me tire un error, pero no me tira nada y se queda en stand by.

El modelo esta así:
Código PHP:
Ver original
  1. public function registrar($nombre, $apellidos, $email, $password)
  2. {
  3.     $data = array(
  4.         'email'     => $email,
  5.         'pws'       => md5($password),
  6.         'nombre'    => $nombre,
  7.         'apellidos' => $apellidos
  8.     );
  9.  
  10.     $res = $this->db->insert('usuarios', $data);
  11.    
  12.     return $res;
  13. }

El controlador asi:
Código PHP:
Ver original
  1. public function proceso()
  2. {
  3.     $nom = $this->input->post('nom');
  4.     $ape = $this->input->post('ape');
  5.     $ema = $this->input->post('ema');
  6.     $pws = $this->input->post('pws');
  7.  
  8.     $guardar = $this->Registro_model->registrar($nom, $ape, $ema, $pws);
  9.  
  10.     if ($guardar === true) {
  11.         echo 'Sus datos fueron registrados con éxito, ahora podrá registrar los datos de su empresa.|0';
  12.     }
  13.     elseif ($guardar === false) {
  14.         echo 'Sus datos no pudieron ser guardados.|1';
  15.     }
  16.     else {
  17.         echo $guardar;
  18.     }
  19. }
Como les digo, cuando el registro no existe en la base de datos todo está normal, inserta sin problemas, todo bien, pero cuando quiero ingresar un registro duplicado no me tira ningún error y se queda en stand by. Imagino que la línea $res = $this->db->insert('usuarios', $data); debería tirarme el error si sucediera.

Espero que me puedan ayudar.

Saludos,
__________________
El aprendiz.
  #2 (permalink)  
Antiguo 04/04/2015, 23:41
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 7 meses
Puntos: 28
Respuesta: Problemas al insertar un registro

A que te refieres con que se queda en stand by? Como determina el sistema que es un registro duplicado? por validación de parte de CI del formulario? o porque hay algún campo único en tu bbdd? la configuración de CI permite mostrar los errores?
  #3 (permalink)  
Antiguo 05/04/2015, 08:20
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años, 6 meses
Puntos: 8
Respuesta: Problemas al insertar un registro

Las validaciones las hago con jQuery y uso Ajax para no tener que recargar las páginas, entonces cuando va al método que verifica los datos en la base de datos se muestra una imagen de espera el cual cuando el metodo devuelve algún valor esta imagen se va y aparece el mensaje que se devuelva, pero se queda ahí en la imagen de espera.

Como determina el sistema si hay un registro duplicado? Imagino que cuando hago el insert esto debe devolver algún error que me indique que la clave principal ya existe. Claro existe un campo único que es el correo electrónico.

De que manera puedo configurar CI para que permita mostrar errores?
__________________
El aprendiz.
  #4 (permalink)  
Antiguo 06/04/2015, 09:27
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 7 meses
Puntos: 28
Respuesta: Problemas al insertar un registro

Entonces no es que se quede en stand by, sino, que tu ajax espera un tipo de respuesta, probablemente un json, y esta obteniendo otra. Usa el firebug para que veas la respuesta del ajax, y alli podras ver que te esta devolviendo, probablemente el error de base da datos por ingresar un email repetido cuando es unique.

Recuerda siempre de validar tus datos y de mostrar los mensajes de error deseados.


Saludos
  #5 (permalink)  
Antiguo 07/04/2015, 13:42
Avatar de jose_php  
Fecha de Ingreso: mayo-2014
Mensajes: 44
Antigüedad: 10 años, 6 meses
Puntos: 2
Respuesta: Problemas al insertar un registro

Tienes que poner validaciones en tu controlador para datos unicos que no seran repetidos en tu base de datos y por otro ladoen la base de datos que el id sea autoincrementado, claro en caso lo necesites, ya que al mandar una respuesta por ajax van a esperar una respuesta y por eso el proceso se queda como aparentemente congelado.

Saludos.

Etiquetas: registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:25.