elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  No puedo subir todos los registro de un cvs
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No puedo subir todos los registro de un cvs  (Leído 1,790 veces)
yoelrodguez

Desconectado Desconectado

Mensajes: 168


Es mejor, una amarga verdad que una dulce mentira


Ver Perfil WWW
No puedo subir todos los registro de un cvs
« en: 12 Diciembre 2019, 16:47 pm »

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.

Código:
$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


En línea

yoelrodguez

Desconectado Desconectado

Mensajes: 168


Es mejor, una amarga verdad que una dulce mentira


Ver Perfil WWW
Re: No puedo subir todos los registro de un cvs
« Respuesta #1 en: 17 Diciembre 2019, 17:56 pm »

Hola, aquí les dejo la solución al problema que tenia con el insertar múltiples registro por si a alguien mas le sucede. El problema no estaba en la forma, en que estoy segmentado el fichero para subirlo, sino en la forma en que estaba haciendo el query para mi insert . Ese código,no lo coloque en mi pregunta ya que el proceso de insert se me realizaba correctamente. Buscando en internet encontré una explicación de como insertar múltiples fichero en php con mysqli y ahí puede observar que el método query que esta usando no era el correcto a continuación les dejo el método que estaba usando y por el que lo sustituí y se me soluciono el problema.

Método que estaba usando:


Código:
mysqli_query

Método que coloque nuevo.

Código:
mysqli_multi_query


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
A todos los que tengan GTA IV, me podríais ayudar con las entradas de registro?
Juegos y Consolas
BlackSr 6 5,122 Último mensaje 22 Diciembre 2008, 17:37 pm
por BlackSr
No puedo subir mi web a WAN
Dudas Generales
Kobe_Crack 0 3,007 Último mensaje 28 Agosto 2011, 02:04 am
por Kobe_Crack
Como puedo subir un .exe a mi ftp?
Desarrollo Web
CAR3S? 3 3,175 Último mensaje 9 Octubre 2011, 18:30 pm
por CAR3S?
Vodafone estudia subir los precios a todos los clientes por el coste del fútbol
Noticias
wolfbcn 0 1,263 Último mensaje 22 Febrero 2016, 21:37 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines