Ver Mensaje Individual
  #14 (permalink)  
Antiguo 23/06/2009, 18:03
Avatar de Tx
Tx
 
Fecha de Ingreso: enero-2002
Ubicación: Cba - Arg
Mensajes: 188
Antigüedad: 22 años, 3 meses
Puntos: 1
Respuesta: Importar desde Excel a Mysql.

Que tal Gaug, no hay problema.

El tema es saber como esta el formato del CSV, abrelo con el block de notas y no con el Excel, por lo que decis puede estar asi:

Código:
ID;NOMBRE;DNI
1;Marcos;132
2;Maria;234
3;Jose;456
Excel no da muchas opciones de como guardar un CSV, asi que tene cuidado con esto. Yo recomiendo usar el OpenOffice, pero teniendo algunas cosas presentes no vas a tener problemas.

La funcion fgetcsv($fp,1000,';','"'), lee una linea por vez hasta 1000 caracteres (en este caso, podes modificar este valor) desde el principio, y considera en este caso, los ";" como separadores de campos, y las " " " como identificadores de cadenas (strings). Si en tu caso los campos esta separados por ",", cambia en la funcion por el caracter correspondiente.

En el caso que tu CSV sea como el ejemplo, debes tener cuidado, ya que la primera linea corresponde a los nombres de los campos, deberias empezar tu procedimiento a partir de la seguiente linea:

Código PHP:
// LEO LA PRIMERA LINEA, PERO NO HAGO NADA CON ESTOS DATOS
fgetcsv($fp,1000,';','"');
$tmpSQL = array();
// A PARTIR DE ACA SI
while(($linea=fgetcsv($fp,1000,';','"'))!==FALSE){
        
$tmpSQL[] = "('".$linea[0]."','".$linea[1]."')";

Tambien capaz estas confundido con como recuperar los datos leidos, el nombre de la columna no se tienen en cuenta, no es una tabla realmente, como sucede con las bases de datos.

Sino, que pasan a ser una matriz, arreglo o vector, despues de la lectura de la primera linea quedaria un array asi:

Código PHP:
array(
      
=> 1,
      
=> Marcos,
      
=> 123
); 
Para descubrir por donde esta mas o menos el error, podes usar la funcion "die" e ir viendo por donde entra o no tu rutina, ej:

Código PHP:
<?php
if($_REQUEST['algo']){
       if(
$_REQUEST['otro']){
              die(
'llego hasta aqui.');
       }
}
?>
Saludos!

PD: renegando un poco se graban a fuego algunos conceptos, je, que no decaiga!