Foros del Web » Programando para Internet » PHP »

PhP (Pasar el contenido de un csv a una base datos mysql)

Estas en el tema de PhP (Pasar el contenido de un csv a una base datos mysql) en el foro de PHP en Foros del Web. Pos lo dicho necesito pasar un archivo CSV que tengo en el servidor a una base de datos mysql esta ya esta creada solo necesito ...
  #1 (permalink)  
Antiguo 07/04/2010, 04:08
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Pregunta PhP (Pasar el contenido de un csv a una base datos mysql)

Pos lo dicho necesito pasar un archivo CSV que tengo en el servidor a una base de datos mysql esta ya esta creada solo necesito insertar los datos.

Tengo codigo ya creado pero no lo consigo terminar


<?php
function Conectarse()
{
if (!($link=mysql_connect("localhost","root",""))) {
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("precio",$link)) {
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$row = 1;
$handle = fopen("datos.csv", "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$num = count($data);
$row++;
$cadena = 'INSERT INTO tarifa VALUES ('.$data[0].','.$data[1].','.data[2].','.data[3].')';

for ($c=0; $c < $num; $c++) {
if ($c==($num-1))
$cadena = $cadena."'".$data[$c] . "'";
else
$cadena = $cadena."'".$data[$c] . "',";
}

$cadena = $cadena.");";
echo $cadena."<br>";

$enlace=Conectarse();
$result=mysql_query($cadena, $enlace);
mysql_close($enlace);
}

fclose($handle);

?>


Aver si alguien consigue guiarme para conseguirlo
muxas gracias ^^
  #2 (permalink)  
Antiguo 07/04/2010, 07:31
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: PhP (Pasar el contenido de un csv a una base datos mysql)

mysql_query debe estar dentro del while. No está insertando todo porque la variable $cadena, está tomando el último valor. Cada vez que recorres el archivo y almacenas la información en la cadena se sobre-escribe con el siguiente dato. Para ello usa el mysql_query en el while.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/04/2010, 02:30
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: PhP (Pasar el contenido de un csv a una base datos mysql)

ok gracias probare
  #4 (permalink)  
Antiguo 08/04/2010, 04:48
 
Fecha de Ingreso: abril-2010
Mensajes: 18
Antigüedad: 14 años
Puntos: 0
Respuesta: PhP (Pasar el contenido de un csv a una base datos mysql)

He conseguido parte de lo ke keria, consigo mostrar los datos directamente del csv pero hay un problema no me separa los datos me saka la array entera

dejo el código aki:


<?php

$link=mysql_connect("localhost","root","");
mysql_select_db("precio",$link);


$row = 1;
$fp = fopen ("datos.csv","r");

while ($data = fgetcsv ($fp, 1000, ";")) {

$num = count ($data);
echo "<p> $num fields in line $row: <br>";
$row++;
for ($c=0; $c<$num; $c++) {
echo $data[$c] . "<br>";

}
}

fclose ($fp);

?>


es como si no me iciera la separacion del ";"
$data = fgetcsv ($fp, 1000, ";")

Etiquetas: csv, insertar, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:07.