Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/04/2016, 06:53
ImHarold
 
Fecha de Ingreso: febrero-2015
Ubicación: Bogotá
Mensajes: 41
Antigüedad: 9 años, 2 meses
Puntos: 1
Respuesta: Validar que solos los ids nuevos sean insertados

b) Si el Id existe descartar la inserción por completo... y seguir con el siguiente Id.

Mira así me llegan los datos por el txt - Mi Id o indice es un autoincremental no en la tabla de MySQL pero si en el txt así:

1,8840,'Set Cubiertos',1
2,8840,'Efectivo',1
3,8841,'Serv. Domicilio',1
4,8841,'Huev RevCebTomat',1
5,8841,'Empq Fritat Desy',1
6,8841,'.SIN',1
7,8841,'ArepitasQueso(3)',1
8,8841,'Mini Salchichas.',1
9,8841,'Empq M Salc Desy',1
10,8842,'Serv. Domicilio',1
11,8842,'Huev RevCebTomat',1
12,8842,'Empq Fritat Desy',1
13,8842,'ArepitasQueso(3)',1
14,8842,'Pan Brioche',2

Código PHP:
Ver original
  1. $filasP = file('C:\IntranetPV\Pedido.txt');
  2.  
  3.     foreach ($filasP as $key => $valoresP) {
  4.           $valoresP1 = trim(str_replace("'", "", $valoresP));
  5.           list($Id_U, $Id_chk, $Cnt, $Producto) = explode(",",$valoresP1);
  6.           $InsertP = mysql_query("REPLACE INTO pedido(Id_U, Id_chk, Cnt, Producto) VALUES ('$Id_U','$Id_chk','$Producto','$Cnt')", $conexion);
  7.     }

Actualmente remplaza... pero cuando son muchas líneas se lentea la aplicación y el servidor también sube en performance :/.

Intente con consulta INSERT IGNORE en vez de REPLACE

Código MySQL:
Ver original
  1. INSERT IGNORE INTO pedido(Id_U, Id_chk, FechaP, Total, Cnt, Producto)
  2. VALUES ('$Id_U','$Id_chk','$FechaP','$Total','$Producto','$Cnt')

Pero lo que hace es insertar una vez todos los registros y ya de hay de vuelve a insertar ni a ignorar ni nada.

Dicho esto necesito es que solo inserte una cantidad prudente (100 registros/lineas) y o así sea que valide el ultimo Id y vaya insertando (lo cual sería mucho mejor).

Insertaría solo un pedido por ciclo. (el ciclo lo hace cada 30 segundos) entonces cada vez que pase inserte solo el nuevo o el grupo de nuevos.
__________________
La vida es un juego de Ajedrez.