este es el codigo que registra y dura mas de 1h en registrar o actualizar en la base de datos
que hace primero abro el archivo previamente subido el archivo pesa 15M y tiene mas de 90 mil lineas
leo el archivo y separo los campos ya que son de ancho fijo cada campo tiene su tamanio
verifico el codigo del archivo con el que tengo en la base de datos para ver si ya existe si existe actualizo si no registro
tarda por que se hace todo ese proceso linea por linea me imagino ..
cuando termina de procesar envia el mensaje a la vista que esta esperando la respuesta.. que son los echos que salen alli en caso de un erros muestra el echo de erro, si no muestra que se ingresaron bien ... tu crees que si coloco los echos del script que me incremente el load bar... se valla mostrando en cada ciclo... ??
Código PHP:
public function insertarRepuestosMaster($archivo_nombre){
$archivo = file('C:\wamp\www\pedidoSugerido\archivos\ '.$archivo_nombre);
$cont_linea = 0;
$mensaje = "error";
$mensajeU = "Datos Actualizados";
$mensajeI = "Datos Registrados";
$contarUpdate = 0;
$contarInsert = 0;
for($i=0;$i<1;$i++){
$maximo = strlen($archivo[$i]); // cuantos caracteres tiene la primera linea 163
}
if($maximo == '163'){
foreach ($archivo as $linea_num => $linea)
{
$codigo = substr($linea, 0, 17);
$codAlt = substr($linea, 17, 21);
$precio = substr($linea, 38, 17);
$descripcionMala = substr($linea, 55, 23);
$campo5 = substr($linea, 78, 8);
$campo6 = substr($linea, 86, 32);
$campo7 = substr($linea, 118, 20);
$campo8 = substr($linea, 138, 12);
$campo9 = substr($linea, 150, 11);
if($this->verificarMaster($codigo)){
$data = "";
$data = array(
'codigo' => $codigo,
'codigoAlt' => $codAlt,
'precio' => $precio,
'descripcion' => $descripcionMala,
'campo5' => $campo5,
'campo6' => $campo6,
'campo7' => $campo7,
'campo8' => $campo8,
'campo9' => $campo9
);
$id = $this->verificarMaster($codigo);
$this->db->where('id', $id);
$this->db->update('master',$data);
$contarUpdate ++;
$mensaje = $this->db->_error_message();
if(empty($mensaje)){
$mensajeU = "Datos Actualizados";
}else{
$mensaje = "Error Archivo Incorrecto";
}
}else{
$this->db->set('codigo',$codigo);
$this->db->set('codigoAlt',$codAlt);
$this->db->set('precio',$precio);
$this->db->set('descripcion',$descripcionMala);
$this->db->set('campo5',$campo5);
$this->db->set('campo6',$campo6);
$this->db->set('campo7',$campo7);
$this->db->set('campo8',$campo8);
$this->db->set('campo9',$campo9);
$this->db->insert('master');
$contarInsert ++;
$mensaje = $this->db->_error_message();
if(empty($mensaje)){
$mensajeI = "Datos Registrados";
}else{
$mensaje = "Error Archivo Incorrecto";
}
}
}
echo $mensajeU.": ".$contarUpdate." ".$mensajeI.": ".$contarInsert;
} else {
echo "Archivo Incorrecto";
}
// echo $cont_linea."Registros";
}