
11/03/2013, 11:41
|
| | 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 |