Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/03/2013, 11:41
CoolM
 
Fecha de Ingreso: junio-2010
Mensajes: 31
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: resgistro en php dura mas de 1h

bueno verificare esos enlaces haber si hay manera de optimizar , lo hago en php el registro ya que un usuario es el que los va a insertar claro no lo hacen a cada raro quizas una o 2 veces al mes ... !!

estoy usando codeigniter y el codigo en realidad es sencillo se los pongo a continuacion

Código:
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;
        
          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)){// verifico si esta en la tabla Actualizo 

                  $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{ // si no registro 
              
              $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;
             // echo $cont_linea."Registros";
        
    }
bueno como el archivo es de ancho fijo voy separando las columnas luego verifico por codigo si esta registrado o no... para saber si hay que actualizar o simplemente registrar bueno es todo lo que hace esta funcion que es a la que llama al registrar despues de ingresar el archivo txt...


la tabla tiene 9 campos
__________________
Miguel0N