Foros del Web » Programando para Internet » PHP »

Se inserta varias veces en la base de datos

Estas en el tema de Se inserta varias veces en la base de datos en el foro de PHP en Foros del Web. Hola, bueno yo tengo el siguiente codigo: Código PHP: if( mysql_num_rows ( $resp ) !=  0 ) { mysql_query ( "UPDATE mp3 SET ultima = '$tiempo', veces = (veces+1), ip = '$ip' WHERE id = '$id'" ); }else { mysql_query ( "INSERT INTO mp3(id, titulo, primera, ultima, veces, ip) values('$id', '$nombre', '$tiempo', '$tiempo', '1', '$ip')" ); ...
  #1 (permalink)  
Antiguo 19/03/2012, 16:38
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 16 años, 6 meses
Puntos: 3
Exclamación Se inserta varias veces en la base de datos

Hola, bueno yo tengo el siguiente codigo:

Código PHP:
if(mysql_num_rows($resp) != 0) {
mysql_query("UPDATE mp3 SET ultima = '$tiempo', veces = (veces+1), ip = '$ip' WHERE id = '$id'");
}else {
mysql_query("INSERT INTO mp3(id, titulo, primera, ultima, veces, ip) values('$id', '$nombre', '$tiempo', '$tiempo', '1', '$ip')");

Al registrar los datos salen duplicados, pero no es problema del if, sino que se hacen en el mismo tiempo (o a veces difieren por unos segundos) al entrar solo una vez al archivo sale duplicado...

Luego al entrar nuevamente solo se actualizan. Pero no quiero que queden duplicados

¿Alguien sabe cual es la razon por la cual se me dupliquen los datos?
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #2 (permalink)  
Antiguo 19/03/2012, 16:49
 
Fecha de Ingreso: agosto-2008
Ubicación: Miami, FL
Mensajes: 210
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Se inserta varias veces en la base de datos

Hola Grox,
No es que sepa mucho, pero, no debería ir primero el INSERT y en el else el UPDATE?
__________________
Se invierte mas dinero en cirugía de pechos y viagra que en la cura del Alzheimer. En unos años tendremos viejas con grandes tetas y viejos con erecciones pero que no recordarán para que sirven..
  #3 (permalink)  
Antiguo 19/03/2012, 17:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Se inserta varias veces en la base de datos

Cita:
Iniciado por desoler Ver Mensaje
Hola Grox,
No es que sepa mucho, pero, no debería ir primero el INSERT y en el else el UPDATE?
No, porque si te fijas en el if, he puesto != (que seria como "si no es igual")

Seria como decir:

Si mysql_num_rows($resp) no es igual a cero (o sea si existe) entonces hacemos update, sino (que seria cero) insertamos el dato...
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #4 (permalink)  
Antiguo 19/03/2012, 17:32
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años, 6 meses
Puntos: 28
Respuesta: Se inserta varias veces en la base de datos

no me queda clara una cosa, entras por primera vez y te guarda dos veces el mismo dato en el database? id no deberia ser tu primary key (unique)? asi que no te deberia dejar tener otra linea con el mismo id, osea que no podrian existir duplicados (mismos datos, asi que tambien mismo id)
  #5 (permalink)  
Antiguo 19/03/2012, 18:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 16 años, 6 meses
Puntos: 3
Respuesta: Se inserta varias veces en la base de datos

Cita:
Iniciado por jamie_88 Ver Mensaje
no me queda clara una cosa, entras por primera vez y te guarda dos veces el mismo dato en el database? id no deberia ser tu primary key (unique)? asi que no te deberia dejar tener otra linea con el mismo id, osea que no podrian existir duplicados (mismos datos, asi que tambien mismo id)

Lo había olvidado completamente!!!!

Muchas gracias!
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.


Etiquetas: inserta, mysql, sql, veces
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 09:11.