Foros del Web » Programando para Internet » PHP »

ayuda subir archivo de texto a Base de datos

Estas en el tema de ayuda subir archivo de texto a Base de datos en el foro de PHP en Foros del Web. Tengo un problemas bastante raro al subir mis datos, el scrip que ven a continuación es el que uso, subo el archivo notas.csv al servidor, ...
  #1 (permalink)  
Antiguo 10/10/2004, 13:29
 
Fecha de Ingreso: marzo-2003
Ubicación: Bogotá
Mensajes: 199
Antigüedad: 14 años, 9 meses
Puntos: 0
ayuda subir archivo de texto a Base de datos

Tengo un problemas bastante raro al subir mis datos, el scrip que ven a continuación es el que uso, subo el archivo notas.csv al servidor, ejecuto mi .php y tan solo pasan 3 segundos de ejecución y en teoria todo bien, pero al entrar y revisar mis tablas solo aparecen 1680 datos ingresados, cuando son 9800 , que sera?? y no los ingresa en orden como deberia si no se salta, entonces en teoria esta ingresado hasta el dato 6700, pero como se salta el total de ingresados son 1680 cuando deberian ser 9800 datos, que puede ser?? gracias por su ayuda. El archivo total apenas pesa 935 Kb.
<?
function get_csv($filename, $delim =";"){

$row = 0;
$dump = array();

$f = fopen ($filename,"r");
$size = filesize($filename)+1;
while ($data = fgetcsv($f, $size, $delim)) {
$dump[$row] = $data;
$row++;
}
fclose ($f);

return $dump;
}
?>

<?
function makeINSERT($text, $table){

require("conexion.php");
$insert = array();
$i = 0;

while (list($key, $val) = @each($text)){

$insert[$i] = "INSERT into ".$table." VALUES('";
$insert[$i] .= implode("','", $val);
$insert[$i] .= "');\n";
$IdConsulta = mysql_query($insert[$i], $IdConexion);

$i++;
}

return $insert;
}
?>

<?php

$file = "notas.csv";
$tbl = "notass";

$CSVarray = get_csv($file);
$CSVarray = makeINSERT($CSVarray, "$tbl");

?>
  #2 (permalink)  
Antiguo 10/10/2004, 22:01
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 14 años, 1 mes
Puntos: 1
donde tienes este while:

[php]
while ($data = fgetcsv($f, $size, $delim)) {
$dump[$row] = $data;
$row++;
}
[php]

modificalo a lo siguiente:

Código PHP:
while ( ( $data fgetcsv($f$size$delim) ) !== false ) {
$dump[$row] = $data;
$row++;

esto debido a que si data es un arreglo con 0 datos, la expresion evalua falso, a pesar de que aun queden filas, por lo que debes asegurarte de que no sea asi, eso lo haces con el operador !==

espero eso sea la solucion, suerte
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 16:04.