Foros del Web » Programando para Internet » PHP »

Evitar "INSERT" duplicados

Estas en el tema de Evitar "INSERT" duplicados en el foro de PHP en Foros del Web. Buenos días a todos... Tengo un problema al ejecutar una sentencia "INSERT" en MySQL utilizando AJAX y PHP en el Servidor. Mi problema es que ...
  #1 (permalink)  
Antiguo 17/05/2022, 09:48
 
Fecha de Ingreso: abril-2016
Mensajes: 18
Antigüedad: 8 años
Puntos: 0
Información Evitar "INSERT" duplicados

Buenos días a todos...

Tengo un problema al ejecutar una sentencia "INSERT" en MySQL utilizando AJAX y PHP en el Servidor.

Mi problema es que tengo un Sistema de Registro de Usuarios y en algunos casos este proceso de registro "INSERT" se realiza por duplicado en mi BD (Al parecer los usuarios hacen doble click en el botón de envío de datos).

Quizás pueda solucionarlo cambiando el campo "DNI" (Que no es la PK) a tipo "Unique"... Qué opinan?

Gracias por la ayuda
  #2 (permalink)  
Antiguo 20/05/2022, 09:39
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 1.135
Antigüedad: 13 años, 1 mes
Puntos: 170
Respuesta: Evitar "INSERT" duplicados

Lo que tienes que hacer es limpiar las variables una vez insertadas, refrescar la pagina que introduce los datos o redireccionarlos a otro documento a cuenta que si dan doble clic, refrescan la pagina, dan hacia atras, etc... los datos no se vuelvan a enviar... un ejemplo simple...

formulario.php -> envia a -> guarda_datos.php?accion=guarda

el GET accion "guarda" ordena al codigo ejecutar la función de guardar... una vez guardado exitosamente o mostrando error en algo redirecciona a formulario.php?accion=ok ... ahora el accion "ok" mostrará en el documento del formulario un mensaje diciendo que todo ha sido ejecutado con exito, aunque den F5 ó actualizar, ya no estaras en guarda_datos.php, mucho menos con el accion "guarda", asi que las variables estaran limpias y no tendras problemas de duplicidad... claro que se puede mejorar mas, pero asumo que esto "simple" solventará tu problema.
saludos
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)

Etiquetas: ajax-php-mysql
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 13:05.