Importar csv con php a mysql

649 views
Skip to first unread message

Markitos Mendez

unread,
Jul 22, 2013, 12:37:11 PM7/22/13
to php-m...@googlegroups.com
Hola amigos estoy tratando de hacer un importador de csv a mysql con php ya hago el proceso de importacion y todo pero no se como vlaidar para que no me registre datos repetidos alguien puede ayudarme

Ricardo Rivas González

unread,
Jul 22, 2013, 12:38:23 PM7/22/13
to php-m...@googlegroups.com
Puedes hacer que tu campo de mysql sea tipo unique y esto va a impedir
que dupliques registros

Ricardo Rivas
Mobile Developer
rri...@richistron.com
richi...@gmail.com
Skype: richistron
Cel. 3339567527
> --
> --
> Este correo ha llegado a ti desde la Lista de Correo del Grupo PHP M�xico.
> Para cambiar la configuraci�n de tu suscripci�n visita:
> http://grupo.phpmexico.mx/
>
> * Visita nuestro sitio: http://phpmexico.mx/
> * S�guenos en Twitter: http://twitter.com/phpmx
> * �nete al Grupo de Facebook:
> http://www.facebook.com/pages/PHP-Mexico/137017066340686
>
> ---
> Has recibido este mensaje porque est�s suscrito al grupo "PHP M�xico"
> de Grupos de Google.
> Para anular la suscripci�n a este grupo y dejar de recibir sus correos
> electr�nicos, env�a un correo electr�nico a
> php-mexico+...@googlegroups.com.
> Para obtener m�s opciones, visita
> https://groups.google.com/groups/opt_out.
>
>

Iván Cortés Ibáñez

unread,
Jul 22, 2013, 1:13:21 PM7/22/13
to php-m...@googlegroups.com
Ampliando en lo que dice Ricardo,

Si hay algún campo en tu archivo CSV que pueda ser llave, en tu base MySQL lo defines como tal y ya no deberían de generarse duplicados, si no hay un solo campo que pueda ser llave, puedes crear una llave compuesta, con dos o más campos.

El detalle aquí sería como manejar los errores. Es decir, si el error viene a la mitad del archivo CSV ¿qué pasaría? ¿cargarías los demás registros? ¿interrumpirias el proceso de carga? ¿no cargar nada desde el inicio?

Saludos,

Iván.
---
asdf


2013/7/22 Ricardo Rivas González <richi...@gmail.com>
Puedes hacer que tu campo de mysql sea tipo unique y esto va a impedir que dupliques registros

Ricardo Rivas
Mobile Developer
rri...@richistron.com
richi...@gmail.com
Skype: richistron
Cel. 3339567527


On 07/22/2013 11:37 AM, Markitos Mendez wrote:
Hola amigos estoy tratando de hacer un importador de csv a mysql con php ya hago el proceso de importacion y todo pero no se como vlaidar para que no me registre datos repetidos alguien puede ayudarme
--
--
Este correo ha llegado a ti desde la Lista de Correo del Grupo PHP México.
Para cambiar la configuración de tu suscripción visita: http://grupo.phpmexico.mx/


* Visita nuestro sitio: http://phpmexico.mx/
* Síguenos en Twitter: http://twitter.com/phpmx
* Únete al Grupo de Facebook: http://www.facebook.com/pages/PHP-Mexico/137017066340686

---
Has recibido este mensaje porque estás suscrito al grupo "PHP México" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-mexico+unsubscribe@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
--
Este correo ha llegado a ti desde la Lista de Correo del Grupo PHP México.
Para cambiar la configuración de tu suscripción visita: http://grupo.phpmexico.mx/


* Visita nuestro sitio: http://phpmexico.mx/
* Síguenos en Twitter: http://twitter.com/phpmx
* Únete al Grupo de Facebook: http://www.facebook.com/pages/PHP-Mexico/137017066340686

--- Has recibido este mensaje porque estás suscrito al grupo "PHP México" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-mexico+unsubscribe@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



Markitos Mendez

unread,
Jul 22, 2013, 1:14:18 PM7/22/13
to php-m...@googlegroups.com
Hola ricardo te comento como esta mi situacion a ver si puedes apoyarme con esta validacion, mira desarrolle un pequeño script que me piden en la escuela para poder importar de csv a mysql con php, eso funciona de maravilla y lo importa tal cual como quiero, pero despues de que habia terminado me dijeron que validara los registros que no se repitieran pero que tomara en cuenta que no solamente sera un archivo el que se importara cada mes debe poder importarse un archivo con informacion similar, la estructura esta asi para que me puedar dar a entender :

Ejemplo a importar en el mes de julio.
notrab      Nombre      fecha           ent           sal
11           jose            22/07/2013   08:00    14:00

Ejemplo a importar en el mes de Agosto.
notrab      Nombre      fecha           ent           sal
11           jose            22/08/2013   08:00    14:00


eso es lo que debo validar espero puedas ayudarme te adjuntare a informacion para que sea mas explicito :


El 22 de julio de 2013 11:38, Ricardo Rivas González <richi...@gmail.com> escribió:
Puedes hacer que tu campo de mysql sea tipo unique y esto va a impedir que dupliques registros

Ricardo Rivas
Mobile Developer
rri...@richistron.com
richi...@gmail.com
Skype: richistron
Cel. 3339567527


On 07/22/2013 11:37 AM, Markitos Mendez wrote:
Hola amigos estoy tratando de hacer un importador de csv a mysql con php ya hago el proceso de importacion y todo pero no se como vlaidar para que no me registre datos repetidos alguien puede ayudarme
--
--
Este correo ha llegado a ti desde la Lista de Correo del Grupo PHP México.
Para cambiar la configuración de tu suscripción visita: http://grupo.phpmexico.mx/


* Visita nuestro sitio: http://phpmexico.mx/
* Síguenos en Twitter: http://twitter.com/phpmx
* Únete al Grupo de Facebook: http://www.facebook.com/pages/PHP-Mexico/137017066340686

---
Has recibido este mensaje porque estás suscrito al grupo "PHP México" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-mexico+unsubscribe@googlegroups.com.

Para obtener más opciones, visita https://groups.google.com/groups/opt_out.



--
--
Este correo ha llegado a ti desde la Lista de Correo del Grupo PHP México.
Para cambiar la configuración de tu suscripción visita: http://grupo.phpmexico.mx/


* Visita nuestro sitio: http://phpmexico.mx/
* Síguenos en Twitter: http://twitter.com/phpmx
* Únete al Grupo de Facebook: http://www.facebook.com/pages/PHP-Mexico/137017066340686

--- Has recibido este mensaje porque estás suscrito a un tema del grupo "PHP México" de Grupos de Google.
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/php-mexico/zU9xteZz6MA/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a php-mexico+unsubscribe@googlegroups.com.
simplecsv.zip

Iván Cortés Ibáñez

unread,
Jul 22, 2013, 1:24:03 PM7/22/13
to php-m...@googlegroups.com
    /*
    La siguiente funcion es la que limita al servidor a que solamente pueda aceptar
    archivos con formato CSV.
    */

    function get_file_extension ($file_name){
         return end (explode('.',$file_name));
    }


"La siguiente función obtiene el nombre y extensión del archivo (si la hay) y los guarda en un arreglo.", Nada más.

FTFY.

Iván.
---
asdf


2013/7/22 Markitos Mendez <both....@gmail.com>
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a php-mexico+...@googlegroups.com.

Markitos Mendez

unread,
Jul 22, 2013, 2:01:11 PM7/22/13
to php-m...@googlegroups.com
Para anular la suscripción a este tema, visita https://groups.google.com/d/topic/php-mexico/zU9xteZz6MA/unsubscribe. Para anular la suscripción a este grupo y todos sus temas, envía un correo electrónico a php-mexico+...@googlegroups.com.

Markitos Mendez

unread,
Jul 22, 2013, 2:02:02 PM7/22/13
to php-m...@googlegroups.com
Ivan si hay un campo en el csv el notrab podria ser llave primaria, pero aunque en con otras fechas importe no los guardara ???

Iván Cortés Ibáñez

unread,
Jul 22, 2013, 2:32:02 PM7/22/13
to php-m...@googlegroups.com
Hola Markitos, me cuesta un poco de trabajo entender tu último comentario. ¿Podrías explicar un poco más?. Tal vez unos cuantos puntos, comas o acentos ayuden.

Markitos Mendez

unread,
Jul 22, 2013, 2:58:19 PM7/22/13
to php-m...@googlegroups.com
Ok gracias.
La idea del importador es por que me dan un archivo con formato csv el cual voy a pasar a mysql de manera mensual lo datos fijos son el numero del trabajador, el nombre, y los datos que van cambiando son la fecha, la hora de entrada y la hora de salida del archivo csv entonces lo que necesito es que la informacion no se repetita pero al validar que la informacion para que acepte de otros meses tambien y no me la marque, como repetida.

Iván Cortés Ibáñez

unread,
Jul 22, 2013, 3:01:49 PM7/22/13
to php-m...@googlegroups.com
Ahí en tu código ya tienes una comprobación para saber si el notrab ya esta dado de alta, supongo que solamente habría que hacer la distinción:

Si notrab esta en la base:

update tabla set ... where notrab = ...

Else,

insert into tabla...

En lugar de mandar un error, actualizar el registro.

Markitos Mendez

unread,
Jul 22, 2013, 3:11:29 PM7/22/13
to php-m...@googlegroups.com
ok checare esa parte muchas gracias :)

Luis Alfredo Abarca Galicia

unread,
Jul 22, 2013, 3:29:21 PM7/22/13
to php-m...@googlegroups.com
Yo opino esto:
  1. Crea una tabla para los datos de la persona
  2. Crea otra tabla para las entradas y salidas de la persona
  3. Relaciona en la segunda tabla el número de trabajador
  4. En la segunda tabla debes validar que el mismo trabajador (ID) no tenga repetida la misma fecha 

TRABAJADOR:
============
ID   |   Nombre 
-------------------------
1    |   Luis
2    |   Pedro


TABLA2
============
ID   |   FECHA 
-------------------------
1    |  20/07/2013  > OK
2    |  20/07/2013  > OK
1    |  21/07/2013  > OK
1    |  21/07/2013  > ERROR








Atte.

Luis Alfredo Abarca Galicia
www.e-acapulco.com

Visita Acapulco en www.e-acapulco.com
reserva hoteles a precios ecnonomicos



2013/7/22 Markitos Mendez <both....@gmail.com>

Markitos Mendez

unread,
Jul 22, 2013, 3:34:49 PM7/22/13
to php-m...@googlegroups.com
Manejar catalogos seria una buena opcion pero me piden que todo lo haga con una sola tabla !!!

Mynor Mizrahi

unread,
Jul 22, 2013, 4:50:49 PM7/22/13
to php-m...@googlegroups.com
Entonces importalo a una tabla temporal, le aplicas un select distinct y al mismo tiempo insertas la consulta en un nuevo conjunto...
Reply all
Reply to author
Forward
0 new messages