• Viernes 26 de Abril de 2024, 21:48

Autor Tema:  Duplicacion De Registros  (Leído 4006 veces)

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Duplicacion De Registros
« en: Jueves 21 de Septiembre de 2006, 22:37 »
0
hola amigos que tal tengo una duda que me surgio al ver un post de aqui con respecto a asp
http://foros.solocodigo.com/index.php?showtopic=24043

bueno el caso es que tambien eh notado que sucede en php, como puedo evitar que esto pase? por su ayuda gracias anticipadas :)

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Duplicacion De Registros
« Respuesta #1 en: Jueves 21 de Septiembre de 2006, 22:51 »
0
Pues eso es sencillo, es una simple validación con la base de datos, es decir, si antes de insertar, verificas que el registro ya existe (suponiendo que no estás usando algún campo de tiempo en el que se hizo el registro, aunque pensandolo, creo que también se puede).

Por ejemplo, tu haces un INSERT en cierta página, antes de realizar el INSERT, haces un SELECT, buscando los mismos valores en los mismos campos del INSERT, si mysql_num_rows() te devuelve mas que cero, entonces ya existe un registro con esos datos, y puedes mandar un mensaje de que ya existe, si no, lo insertas.

Espero haberme explicado  :D
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Duplicacion De Registros
« Respuesta #2 en: Jueves 21 de Septiembre de 2006, 23:08 »
0
mmmmmmmmmmmmmm  :( lo siento :P era mas cuestion de logica jejeje que tonto me vi :P  :whistling:

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Duplicacion De Registros
« Respuesta #3 en: Jueves 21 de Septiembre de 2006, 23:14 »
0
a todos nos pasa  :P
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Duplicacion De Registros
« Respuesta #4 en: Viernes 22 de Septiembre de 2006, 14:25 »
0
hola bueno yo tengo el mismo problema, pero tengo una duda resulta que vuando yo guardo los valores si el usuario presiona F5 o actualizar este se duplica cierto, pero mi duda es que yo tengo un campo que es el primario y es autonumerico, entonces no puedo validar que por ejemplo si los campos fueron iguales ya que muchos usuario de esta pagina son del mismo lugar y pueden tener los mismo datos, podrian explicarme mas o menos que es lo que debo hacer ya que no lo tengo claro, y mucha gracias amigos
Un Tigre Nunka Kambia Sus Rayas

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Duplicacion De Registros
« Respuesta #5 en: Viernes 22 de Septiembre de 2006, 17:13 »
0
Bueno, en realidad hay una forma más fácil que esa....

Una vez se envía el formulario (obviamente por POST), recibís los datos, los guardas y reenvias la página a sí misma o a cualquier lado.... De esta forma, al enviar por post, la página no queda en el historia, por lo cual no hay forma de que vuelva justo a la instancia en que se guardan los datos, solo puede ir a la anterior o a la siguiente (a la que lo redireccionaste), pero nunca a la que guarda los datos.


Altreum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Duplicacion De Registros
« Respuesta #6 en: Viernes 22 de Septiembre de 2006, 17:35 »
0
Altareum, tienes toda la razon, pero lo que pasa que en mi caso donde envio los datos por el metodo post, es ademas donde muestro el resultado de lo que me solicita el usuario, ya que necesito recuperar el ultimo valor ingresado, entonces no puedo hacer lo que dices, lo que seria factible seria que al momento de el usuario presionar F5 o refresh, que me envie un mensaje diciendo que la pagina no se puede actualizar y que me la envie al menu principal, no se si puede hacer esto igual me cuesta mucho ya que soy super nuevo en este tema y es un poco complicado para mi jejejej :P  bueno amigos espero que me puedan ayudar en esta duda gracias por la ayuda adios
Un Tigre Nunka Kambia Sus Rayas

Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Duplicacion De Registros
« Respuesta #7 en: Lunes 25 de Septiembre de 2006, 14:44 »
0
Neorent, no veo cual puede ser la diferencia que tienes... para ambos casos sirve, siempre y cuando envíes por post, te pongo un ejemplo.

Supongamos que en usuarios.php manejamos la edición de los datos principales de un usuario. Por medio de la variable id pasamos (valga la redundancia) el id de cada usuario. (para que sea más claro, voy a ahorrarme todo el código extra, como la conexión a la base de datos y el formulario).

usuarios.php
Citar
if($_POST['id']){

   UPDATE usuarios nombre="$_POST['nombre']" WHERE id_usuario = $_POST['id'];
   header("Location: usuarios.php?id=".$_POST['id']);
   die();
}


// muestra los datos del usuario
SELECT * FROM usuarios WHERE id_usuario = $_GET['id'];


Este código simplemente lo que hace es una vez que se envía el formulario por post, guarda los datos en la DB y luego te reenvía a la misma página, pasando el id del usuario.
De esta forma solo guarda la info siempre que se le envíen datos vía post, lo cual solo puede ocurrir envíando el formulario.


Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Duplicacion De Registros
« Respuesta #8 en: Lunes 25 de Septiembre de 2006, 15:49 »
0
bueno amigo tienes toda la razon pero parece que no explique el problema, mira te paso a explicar luego de enviar los datos y almacenarlos en la db, se genera un unico id por ejemplo el 1 con los datos enviados correcto si presiono F5 o Refresh, me crea el numero 2 con los mismos datos y asi durante cada vez que presione F5 o refresh entonces no puedo crear la validacion que tu indicas me entiendes?, bueno gracias por la ayuda adios amigos.
Un Tigre Nunka Kambia Sus Rayas

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Duplicacion De Registros
« Respuesta #9 en: Lunes 25 de Septiembre de 2006, 16:49 »
0
Valida todos los campos a excepción del ID.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Duplicacion De Registros
« Respuesta #10 en: Lunes 25 de Septiembre de 2006, 17:16 »
0
sip ya lo habia echo y funciona pero encuentro que es muy lento, pero buscare alguna otra forma de hacerlo y muchas gracias a todos los que leyeron y aportaron en este tema que es original arkantos y bueno yo solo me cole jejejej :P  cuidense gracias a todo amigos
Un Tigre Nunka Kambia Sus Rayas

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Duplicacion De Registros
« Respuesta #11 en: Lunes 25 de Septiembre de 2006, 17:34 »
0
Cita de: "neorent"
sip ya lo habia echo y funciona pero encuentro que es muy lento, pero buscare alguna otra forma de hacerlo y muchas gracias a todos los que leyeron y aportaron en este tema que es original arkantos y bueno yo solo me cole jejejej :P  cuidense gracias a todo amigos
¿Porqué dices que es muy lento? ¿Cómo lo haces?

Ya sé que la discusión terminó... pero quisiera saber como lo haces, por curiosidad.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

neorent

  • Miembro MUY activo
  • ***
  • Mensajes: 249
    • Ver Perfil
    • http://www.laestokada.cl
Re: Duplicacion De Registros
« Respuesta #12 en: Lunes 25 de Septiembre de 2006, 19:57 »
0
ibito sorry pero no me funciona lo que hacia para verificar si el dato estaba duplicado pero no importa seguire investigando a ver que pasa gracias por tu preocupacion.
Un Tigre Nunka Kambia Sus Rayas

jarpi

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Duplicacion De Registros
« Respuesta #13 en: Miércoles 14 de Abril de 2010, 03:49 »
0
Buenas Noches, todas las soluciones son aceptables y bastante buenas, pero me parece que dependiendo de tu problema es un problema de base de datos, yo tenia el mismo problema, para una tabla de mantenimiento en donde tenia, idmantenimiento, descripcion, codigo como campos, yo tenia idmantenimiento como autonumerico, y primary key, que hice?, puse como primary key descripcion y codigo, y le quite la llave primari al id, ya que este no se va a volver a repetir porque es autonumerico, con esta solucion el sistema al tratar de volver a hacer un insert, veia que la descripcion y el codigo eran iguales entonces no lo insertaba, facil.
Saludos.