No puedo subir todos los registro de un cvs
Publicado por Yoel (199 intervenciones) el 12/12/2019 16:37:48
Tengo la siguiente situación, estoy subiendo a mi base de datos un fichero csv que tiene al rededor de 16 mil y pico de registro. La cantidad de registro varia de un mes a otro por lo que el resto no es un valor exacto.
Las consultas de subida de datos la estoy haciendo de 100 en 100, el problema se me presenta cuando la cantidad de registro a subir queda por debajo de 100 (ejemplo 85). Estos últimos registro no me lo sube completo siempre me deja algunos sin subir, la cantidad varia de acuerdo al resto que queda.
A continuación les dejo el código para ver si me pueden ayudar.
Gracias.
Las consultas de subida de datos la estoy haciendo de 100 en 100, el problema se me presenta cuando la cantidad de registro a subir queda por debajo de 100 (ejemplo 85). Estos últimos registro no me lo sube completo siempre me deja algunos sin subir, la cantidad varia de acuerdo al resto que queda.
A continuación les dejo el código para ver si me pueden ayudar.
Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$numLineas = (count(file("storage/" . $files))) / 100;
if (!is_int($numLineas)) {
$numLineas = intval($numLineas) + 1;
}
$Resto = (count(file("storage/" . $files))) % 100;
//Comenzamos a procesar el fichero.
$v = 1;
$c = 1;
$cil = 1;
if (($gestor = fopen("storage/" . $files, "r")) !== false) {
while (($datos = fgetcsv($gestor, 1000, ",")) !== false) {
if ($c != 1) {
//Insertamos los datos siempre que la variable $v llegue a 100.
if ($v == 100 and $cil <= $numLineas) {.
//Insertamos los datos y ponemos la variable $v en cero
$cil++;
$v = 0;
}
//Insertamos el resto que no corresponde a a la cantidad de 100
if ($v == $Resto and $cil == $numLineas and $Resto != 0) {
//Insertamos el resto que queda.
$v = 0;
}
}
$v++;
$c++;
}
}
Valora esta pregunta


0