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

Evitar insert 2 veces (Sencillo)

Estas en el tema de Evitar insert 2 veces (Sencillo) en el foro de Mysql en Foros del Web. Hola Esta pregunta es muy sencilla acerca de mysql/php, disculpen la ignorancia. Estoy haciendo un insert, 2 campos pueden tener valores repetidos, pero otro campo ...
  #1 (permalink)  
Antiguo 27/06/2006, 10:10
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Evitar insert 2 veces (Sencillo)

Hola

Esta pregunta es muy sencilla acerca de mysql/php, disculpen la ignorancia.

Estoy haciendo un insert, 2 campos pueden tener valores repetidos, pero otro campo en particular no debe repetirse, y en el caso que ese campo ya estuviera solo debe actualizarse ¿como le hago para obtener esto?

He visto que usan el DISTINCT, pero solo he visto que lo usan para los SELECT y no he visto un ejemplo para el INSERT

Mi insert es asi, me funciona bien

Código PHP:
$consulta_insertar "INSERT INTO resoluciones (userid, res, ip) VALUES ('$laid', '$res', '$laip')"
Se me ocurrio hacer un UPDATE, pero esto solo actualiza, no inserta si el campo no existe
Código PHP:
$consulta_insertar "UPDATE resoluciones SET res='$res' WHERE userid='$laid'"
  #2 (permalink)  
Antiguo 27/06/2006, 14:03
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Una de las clausulas de la sentencia INSERT es referente a que hacer en caso de que el registro ya exista. Desafortunadamente ahora ni la recuerdo ni tengo un manual a la mano. Revisa la ayuda de la sentencia INSERT y no te será difícil encontrarla.

Es de las cosas que me parecen interesantes del MySQL.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 27/06/2006, 22:21
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
la funcion mysql_affected_rows te devuelve el numero de registros afectados por una consulta. no lo he probado, pero a lo mejor te sirve esto:
Código:
mysql_query("update ...");
if (mysql_affected_rows() == 0)
  mysql_query("insert into ...");
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #4 (permalink)  
Antiguo 29/06/2006, 11:28
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Cita:
Iniciado por haron
la funcion mysql_affected_rows te devuelve el numero de registros afectados por una consulta. no lo he probado, pero a lo mejor te sirve esto:
Código:
mysql_query("update ...");
if (mysql_affected_rows() == 0)
  mysql_query("insert into ...");
Gracias, voy a probar lo que me indicas, me parece mejor que lo que estoy usando actualmente

Aqui tengo el SCRIPT en el que estoy usando esto, aunque todavia tengo problemas espero me puedan decir como solucionar el problema de enviar los datos al servidor antes que se haga la consulta en el prueba.php, aqui el script

http://www.forosdelweb.com/showthrea...33#post1605333
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 07:01.