
Cuatriplicacion de datos
Publicado por Daniel (13 intervenciones) el 16/08/2017 10:09:33
Buenos dias.
He posteado mi problema en el foro de mysql ( http://www.lawebdelprogramador.com/foros/MySQL/1617430-Insercion-erronea-de-filas.html#last ), pero no tengo claro que mi problema sea unica y exclusivamente de mysql, sospecho que tiene que ver mas con PHP asi que a ver si me pueden echar una mano.
He estado desarrollando una app para manejar una base de datos de varios clientes que llevan una especie de "visitadores medicos". Estos "visitadores medicos" llevan una serie de material que es el que quieren controlar mediante esta app. Claro, este material esta asociado a muchos datos: nombres, emails, numeros de telefonos, pins, puks, imeis... en fin (si, son telefonos moviles y tablets). Estos "visitadores medicos" van cambiando y rotando y claro, el material tambien, con lo que al hacer cualquier modificacion o insercion tal y como esta el codigo ahora mismo, la app funciona, pero cuatriplica los registros en la base de datos y no tengo ni idea de porque.
En mis tablas no hay ninguna PK porque no quise desde el principio. Al eliminar los registros duplicados e intentar poner la PK, es como si el codigo tuviera algun tipo de error y fallase. El error que da es "mysql_error() expects parameter 1 to be resource, object given". He intentado buscar el error en internet y nada, sigo igual de bloqueado. Asi que supongo que para mi no es una opcion el incluir la PK. Tal y como esta el codigo ahora, funciona todo correctamente, pero no puedo dejar que cada vez que se realiza una modificacion o se inserta un registro nuevo, se duplique 4 veces. El arreglo que tengo por ahora es hacer que las consultas incluyan un "distinct" pero esto tiene que ser temporal, porque si se cuatriplican los datos cada vez, consumiria cada vez mas recursos y se haria muy lenta.
Los datos cuatriplicados son exactamente iguales. No hay ningun "auto_increment" ni nada, son registros absolutamente iguales.
Como comente primeramente en el post que colgue en el foro de mysql, hay un hecho que puede ser el desencadenante de todo esto aunque a priori no tengo ni idea de que es exactamente. Previamente, pongo un poco en contexto. No soy un experto ni muchisimo menos, termine hace poco mis estudios de "Administracion de Sistemas Informaticos en Red" y quisieron que desarrollase esta app como pudiera. Digo esto porque no se nada sobre PHP orientado a objetos. La app que he desarrollado es bastante basica en cuanto a complicacion.
Hay un archivo, llamado telipad.php en el que mediante dos "include" he añadido los formularios para añadir y modificar los registros de los telefonos y los ipad. Desde que hice esto, es cuando los registros se cuatriplican. Antes estaba de otra forma y esto no pasaba pero trate de optimizarlo de esta manera y desde entonces ocurre esto. Pero aun asi, sigo siendo incapaz de encontrar el error ya que como especifico arriba, todo funciona correctamente, lo unico que no quiero que haga la app es que cuatriplique los registros en la base de datos.
Agradezco cualquier ayuda que me presten ya que estoy totalmente bloqueado en este punto. Muchas gracias de antemano.
Un saludo
He posteado mi problema en el foro de mysql ( http://www.lawebdelprogramador.com/foros/MySQL/1617430-Insercion-erronea-de-filas.html#last ), pero no tengo claro que mi problema sea unica y exclusivamente de mysql, sospecho que tiene que ver mas con PHP asi que a ver si me pueden echar una mano.
He estado desarrollando una app para manejar una base de datos de varios clientes que llevan una especie de "visitadores medicos". Estos "visitadores medicos" llevan una serie de material que es el que quieren controlar mediante esta app. Claro, este material esta asociado a muchos datos: nombres, emails, numeros de telefonos, pins, puks, imeis... en fin (si, son telefonos moviles y tablets). Estos "visitadores medicos" van cambiando y rotando y claro, el material tambien, con lo que al hacer cualquier modificacion o insercion tal y como esta el codigo ahora mismo, la app funciona, pero cuatriplica los registros en la base de datos y no tengo ni idea de porque.
En mis tablas no hay ninguna PK porque no quise desde el principio. Al eliminar los registros duplicados e intentar poner la PK, es como si el codigo tuviera algun tipo de error y fallase. El error que da es "mysql_error() expects parameter 1 to be resource, object given". He intentado buscar el error en internet y nada, sigo igual de bloqueado. Asi que supongo que para mi no es una opcion el incluir la PK. Tal y como esta el codigo ahora, funciona todo correctamente, pero no puedo dejar que cada vez que se realiza una modificacion o se inserta un registro nuevo, se duplique 4 veces. El arreglo que tengo por ahora es hacer que las consultas incluyan un "distinct" pero esto tiene que ser temporal, porque si se cuatriplican los datos cada vez, consumiria cada vez mas recursos y se haria muy lenta.
Los datos cuatriplicados son exactamente iguales. No hay ningun "auto_increment" ni nada, son registros absolutamente iguales.
Como comente primeramente en el post que colgue en el foro de mysql, hay un hecho que puede ser el desencadenante de todo esto aunque a priori no tengo ni idea de que es exactamente. Previamente, pongo un poco en contexto. No soy un experto ni muchisimo menos, termine hace poco mis estudios de "Administracion de Sistemas Informaticos en Red" y quisieron que desarrollase esta app como pudiera. Digo esto porque no se nada sobre PHP orientado a objetos. La app que he desarrollado es bastante basica en cuanto a complicacion.
Hay un archivo, llamado telipad.php en el que mediante dos "include" he añadido los formularios para añadir y modificar los registros de los telefonos y los ipad. Desde que hice esto, es cuando los registros se cuatriplican. Antes estaba de otra forma y esto no pasaba pero trate de optimizarlo de esta manera y desde entonces ocurre esto. Pero aun asi, sigo siendo incapaz de encontrar el error ya que como especifico arriba, todo funciona correctamente, lo unico que no quiero que haga la app es que cuatriplique los registros en la base de datos.
Agradezco cualquier ayuda que me presten ya que estoy totalmente bloqueado en este punto. Muchas gracias de antemano.
Un saludo
Valora esta pregunta


0