Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/11/2009, 06:32
climax2006
 
Fecha de Ingreso: abril-2006
Mensajes: 240
Antigüedad: 18 años, 10 meses
Puntos: 1
bucle que si existe registro no lo inserte y pase al siguiente

Hola: mi consulta es como puedo hacer dentro de un bucle, si existe el registro en la bdd O viene mal formateado, este no lo inserte y pase al siguiente, y de lo contrario lo inserte.

al finalizar, mostrar el total de insertados y no insertados.
lo primero que hago es cargar el csv en una tabla temporal
Código PHP:
$fp fopen ($tmpdestino,"r");
$sql "CREATE TEMPORARY TABLE T_TEMPUF (fecha DATE NOT NULL, uf DOUBLE NOT NULL)" ;
        
mysql_query($sql);

while (
$data fgetcsv ($fp1000";"))
            {
                
$num count ($data);
                
$tmpfecha     VechaUsuario($data[0]);
                
$tmpanio     substr($tmpfecha,0,4);
                
$tmpmes     substr($tmpfecha,4,2);
                
$tmpdia     substr($tmpfecha,6,2);
                if(!
checkdate($tmpmes,$tmpdia,$tmpanio))
                    {
                        
$msg.='FORMATO DE FECHA INCORRECTO, DEBE SER DD/MM/AAAA<br />';
                    }
                
$tmpmonto    $data[1];
                if (!
is_numeric('0'.$tmpmonto))
                    {
                        
$msg.='MONTO UF NO ES NUMERICO<br />');
                    }
                
$insertar "INSERT INTO T_TEMPUF (fecha,uf) VALUES ('".$tmpfecha."','".$tmpmonto."')";
                
mysql_query($insertar);
        
            }
        
fclose ($fp); 
despues de insertar en la temporal grabo en la tabla
Código PHP:
$tmpcuenta 0;
        
$sql1 "SELECT fecha,uf FROM T_TEMPUF ";
        
$sql1 mysql_query($sql1);
        if ( 
mysql_num_rows($sql1) > 0
            {
                while (
$row mysql_fetch_array($sql1))
                    {
                        
$sql "SELECT * FROM T_MONEDA WHERE FECHA = '".VechaUsuario(VechaUsuario2($row[0]))."'";
                        
$sql mysql_query($sql);
                        if (
mysql_num_rows($sql) == 0
                            {
                                
                                
$insertar "INSERT INTO T_MONEDA (FECHA,MONTOUF) ";
                                
$insertar $insertar."VALUES('".VechaUsuario(VechaUsuario2($row[0]))."','".$row[1]."')";
                                
mysql_query($insertar);
                            }
                    }
            } 
pero solo inserta, y si falla no manda ningun error

de antemanos gracias