Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/02/2011, 05:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: campo con muchos datos

El camino más simple que tienes es:
1) Crea la tabla de modelos en Excel, puedes ponerle o no encabezados, pero si los pones, luego hay que darle ciertas condiciones al LOAD DATA.
2) Graba la tabla de Excel como archivo separado por comas (*.CSV)
3) Revisa el archivo generado con el Notepad, para verificar si en tu PC la separación se hizo por coma (,) o por puntos y coma (;). Eso cambia con la regionalización de tu PC.
4) La sentencia completa la puedes encontrar en este site: MySQL con Clase, pero la ida sería que fuese algo así:

Código MySQL:
Ver original
  1. LOAD DATA  INFILE 'ruta_al_archivo\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\n';
Si el archivo está en tu PC y el servidor es remoto, debes agregar LOCAL después de DATA. Eso le indica al sistema que no busque en la carpeta del servidor sino en la que le indiques tú:
Código MySQL:
Ver original
  1. LOAD DATA  LOCAL INFILE 'ruta_al_archivo\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\n';
Si la tabla cuenta con encabezados, debe eliminarse esa línea
Código MySQL:
Ver original
  1. LOAD DATA  LOCAL INFILE 'ruta_al_archivo\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\n'
  4.     IGNORE 1 LINES;
Si la en la tabla sólo se ingresarán ciertos campos, es decir que la tabla a cargar no tiene los mismos campos que la de destino, debe indicarse los campos a cargar de la tabla dstino:
Código MySQL:
Ver original
  1. LOAD DATA  LOCAL INFILE 'ruta_al_archivo\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\n'
  4.     (campo1, campo2, ....);

Finalmente, algunos detalles:
1) Algunos formatos de archivo en lugar de terminar las líneas con un salto de linea los terminan con retorno de carro. En ese caso la secuencia de escape es:
Código MySQL:
Ver original
  1. LOAD DATA  LOCAL INFILE 'ruta_al_archivo\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\r\n'
  4.     (campo1, campo2, ....);
2) Si la cadena que indica el archivo está en una carpeta específica, se debe indicar toda la ruta, pero los caracteres de escape (\) deben a su ves escaparse (\\). Por ejemplo:
Código MySQL:
Ver original
  1. LOAD DATA  LOCAL INFILE 'C:\\Carpeta de archivos cvs\\importaciones\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\r\n'
  4.     (campo1, campo2, ....);
Si no lo hacs, la cadena 'C:\Carpeta de archivos cvs\importaciones\archivomodelos.csv' será interpretada por MySQL como "'C:Carpeta de archivos cvsimportacionesarchivomodelos.csv'"
3) Si en lugar de separar los datos por comas decides separarlos por tabulaciones, la secuencia d escape del caracter es "\t":
Código MySQL:
Ver original
  1. LOAD DATA  LOCAL INFILE 'C:\\Carpeta de archivos cvs\\importaciones\\archivomodelos.csv'
  2.     INTO TABLE modelos
  3.     LINES TERMINATED BY '\r\n';
Finalmente, y muy importante:
4) Los hosting suelen proveerte de acceso administrativo por phpMyAdmin. Esta aplicación web puede manejar la importación de datos directamente a la tabla por archivos TXT o CSV. Aprovéchala.
5) Normalmente los hosting no te permiten usar conexiones remotas para acceder a las bases de datos, por cuestiones de seguridad. En ese caso, o usas la plicación que ellos te proveen para cargar los datos, o desarrollas una propia con PHP para hacerlo. Eso es lo que yo habitualmente hago. La ventaja de una aplicación propia es que es simple de codificar, y puedes mandar directamente las tablas como XML. Consulta en el Foro de PHP o busca un tutorial.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)