Comunidad de diseño web y desarrollo en internet online

Import de CSV

Citar            
MensajeEscrito el 21 Dic 2011 12:56 am
Hola,

Buenas, soy novato en esto de php, y no consigo realizar como quiero el import de un archivo csv.

El archivo csv, contiene dos campos separados por comas, que quiero que se guarden en una tabla de la base datos, es decir:

***formato archivo csv***

campo1,campo2
campo1,campo2

***/formato archivo csv***

Este es el código que tengo:

while (( $data = fgetcsv ($file,1000,",")) !== FALSE ){
$i = 0;
foreach($data as $row) {
$sql_direccion_insert = "insert into direcciones (direccion,nombremostrar) values ('quevaqui',quevaqui');";
echo "<p>sql_direccion_insert: ".$sql_direccion_insert."</p>";
$i++ ;
}
}

Cuando muestro la sql, lo que busco es que me muestre esto:

sql_direccion_insert: insert into direcciones (direccion,nombremostrar) values ('campo1','campo2');

sql_direccion_insert: insert into direcciones (direccion,nombremostrar) values ('campo1','campo2');

Muchas gracias,

Por eladerezador

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Dic 2011 01:29 am
Je je je je tambien eres novato en el tema de foros ;) (usa las etiquetas code o PHP)

Código PHP :

#pon $i=0; fuera de este while
while (( $data = fgetcsv ($file,1000,",")) !== FALSE )


Ahora, lo que te falta es que ejecutes una conexión a la base de datos(BD), lo que exige que te sepas el nombre de usuario asignado a tu BD, password y tu BD

También busca cómo conectar a tu sistema de gestión de BD o dinos cual tienes instalado

Por ElSiniestro

Claber

285 de clabLevel


1 articulo

Genero:Masculino  

Alguien que Ayuda

chrome
Citar            
MensajeEscrito el 29 Dic 2011 05:36 pm
Disculpa el retraso en la contestación no he podido retomar el tema hasta ahora, la verdad es que si soy novato en tema de foros sorry.

La cuestión de la base de datos la tengo resuelta, lo que no consigo es crear la sql en base al contenido del csv, dentro del bucle (que recorre el csv) quiero mostrar las sql para ver que me guarda los datos correctamente, el resto sabría hacerlo.

Por ejemplo tengo un csv, con estos datos:

****csv****

Juan,Perez
Raul,López

****/csv****

El resultado de mi sql debería ser este: (esto es lo que no consigo hacer)

sql_direccion_insert: insert into direcciones (direccion,nombremostrar) values ('Juan','Perez');

sql_direccion_insert: insert into direcciones (direccion,nombremostrar) values ('Raúl','López');

Muchas gracias por la ayuda,

Por eladerezador

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Dic 2011 07:48 pm
los archivos CSV al parsearlos son como arrays de una Dimension entonces por que usas foreach?? y While??
tu codigo:

Código PHP :

<?php
while (( $data = fgetcsv ($file,1000,",")) !== FALSE )
{
   $i = 0;
   foreach($data as $row)
   {
      $sql_direccion_insert = "insert into direcciones (direccion,nombremostrar) values ('quevaqui',quevaqui');";
      echo "<p>sql_direccion_insert: ".$sql_direccion_insert."</p>";
      $i++ ;
   }
}

lo que deberias hacer:

Código PHP :

<?php
//para PHP nos informe de cualquier error
error_reporting(E_ALL);
//recorremos el archivo
while(( $data = fgetcsv ($file,1000,",")) !== FALSE )
{
   //asignamos las posiciones de un vector a variables
   list($direccion,$nombremostrar) = $data;
   $sql_direccion_insert = "INSERT INTO direcciones (direccion,nombremostrar) VALUES ('$direccion','$nombremostrar'')";
   echo "<p>sql_direccion_insert: ".$sql_direccion_insert."</p>";
   //ahora la ejecucion de la sentencia SQL
   mysql_query($sql_direccion_insert);
}

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Dic 2011 07:51 pm
espero que no hagas "copy & paste" por que el codigo tiene error de syntaxis :)

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Dic 2011 09:20 am
Hola,

Muchas gracias por la contestación, el código que me has enviado funciona perfectamente, llevaba tiempo peleándome con esto, habia probado de todo y nada de nada, pero resulta que el problema estaba en el propio archivo csv, desconozco el problema del csv, pero no sé porque razón solo me procesaba una sola línea, incluido con el código que me has puesto, he creado otro archivo csv igual, y ahora si funciona incluso con otros códigos que tenía de antes, así que ¡problema solucionado.!

Un saludo y de nuevo gracias,

Por eladerezador

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.