Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

evitar inserción duplicada

Estas en el tema de evitar inserción duplicada en el foro de Mysql en Foros del Web. Hola, tengo una web, y en ella un formulario de contacto, y necesito exportar los datos del formulario a otra web. Acabo de implementar un ...
  #1 (permalink)  
Antiguo 17/05/2012, 06:54
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 13 años
Puntos: 51
evitar inserción duplicada

Hola, tengo una web, y en ella un formulario de contacto, y necesito exportar los datos del formulario a otra web. Acabo de implementar un código de inserción (lo he implementado en el componente formulario de mi web, es en Joomla) en la bd externa, y todo va bien, excepto que se inserta el mismo registro de forma duplicada.
Necesito alguna forma de evitar esto.
Saludos, Daniel
__________________
Diseño Web Jaén
  #2 (permalink)  
Antiguo 17/05/2012, 07:20
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: evitar inserción duplicada

si se inserta un registro en forma duplicada hay algo mal en tu codigo, podrias poner el fragmento donde haces ese insert?
  #3 (permalink)  
Antiguo 17/05/2012, 08:27
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 13 años
Puntos: 51
Respuesta: evitar inserción duplicada

Código PHP:
$hostname "www.midominio.com";                
$username "miusuario";                     
$password "mipassword";                    
$database "midb";    
$connection mysql_connect($hostname$username$password) or die(mysql_error()); 
mysql_select_db($database) or die(mysql_error());    
$respuesta=mysql_query("INSERT INTO accounts (id,name,created_by,assigned_user_id) VALUES (UUID(),'{$valor}',1,1)");//valor es una variable que contiene un valor que previamente recupero
mysql_close($connection); 
Disculpa, que antes no tenía el código a mano...el código creo que está bien...lo que pasa es que lo he implementado en un fichero el cual tiene otro código que es el correspondiente al formulario del que hablo...concretamente el código que se encarga de enviar el email de alerta de nuevo formulario creado.
Saludos
__________________
Diseño Web Jaén
  #4 (permalink)  
Antiguo 17/05/2012, 08:41
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 13 años
Puntos: 51
Respuesta: evitar inserción duplicada

Me he dado cuenta de que, si en el INSERT INTO, al campo id, le doy un valor constante en lugar de UUID(), sí que se inserta una única vez, pero necesito dar un id diferente con cada inserción...
__________________
Diseño Web Jaén
  #5 (permalink)  
Antiguo 17/05/2012, 09:44
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 13 años
Puntos: 51
Respuesta: evitar inserción duplicada

Ya lo he resuelto!!!! Introduje el código de la inserción en la bd, dentro de una función send (la que envía el email), y no me había dado cuenta de que esta función era llamada 2 veces ...1 vez para enviar un email de aviso al administrador, y la segunda vez para enviar el email copia al remitente.
Saludos!!!!
__________________
Diseño Web Jaén
  #6 (permalink)  
Antiguo 17/05/2012, 10:01
Avatar de djaevi  
Fecha de Ingreso: marzo-2007
Ubicación: Moreno, Buenos Aires
Mensajes: 400
Antigüedad: 17 años, 8 meses
Puntos: 47
Respuesta: evitar inserción duplicada

Me imaginaba que algo de eso habia jaja a mi tambien me ha pasado aveces me alegra que lo hayas resuelto

Saludos
  #7 (permalink)  
Antiguo 17/05/2012, 10:05
Avatar de garciasanchezdani  
Fecha de Ingreso: noviembre-2011
Mensajes: 429
Antigüedad: 13 años
Puntos: 51
Respuesta: evitar inserción duplicada

Gracias por tu ayuda
__________________
Diseño Web Jaén

Etiquetas: duplicada, inserción
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 10:14.