Foros del Web » Programando para Internet » PHP »

Se duplican los registros en la BD

Estas en el tema de Se duplican los registros en la BD en el foro de PHP en Foros del Web. Hola buenos dias mi problema es que tengo un archivo con queries generados dentro del archivo plano, los queries se ejecutan perfectamente yo los leo ...
  #1 (permalink)  
Antiguo 22/07/2009, 08:37
 
Fecha de Ingreso: febrero-2008
Mensajes: 133
Antigüedad: 16 años, 2 meses
Puntos: 0
Se duplican los registros en la BD

Hola buenos dias mi problema es que tengo un archivo con queries generados dentro del archivo plano, los queries se ejecutan perfectamente yo los leo y los ejecuto el verdadero problema es que se me duplican y todos los datos se registran dos veces como puedo arreglar esto muchas gracias de antemano, seguido esta el script con que se realiza la carga, saludos


Código PHP:
    include("conexion_bd.php");

// Busquedad Recursiva: Busca si hay algun archivo en la ruta especificada y los guarda en la variable name

 
$Ruta="E:/Nutritional/";
   if (
$gestor opendir($Ruta)) 
   {
          
$con=0;
       while (
false !== ($archivo readdir($gestor)))
       {
           if (
$archivo != "." && $archivo != ".."
           {
               
            echo  
$name[$con++]=$Ruta.$archivo;
             
                 echo 
"<br>";
           }
       }
       
closedir($gestor);
   }
   

if(
$name)
{
    
$pri=1;
    
    
    for(
$j=0;$j<count($name);$j++)
    {
        
$vlineas file($name[$j]);
        
$vlineas[0][0];
        if(
$vlineas[0][0]!=4)
        {
            
//si se manejan transacciones hace este pocedimiento si solo se maneja un reporte como el caso de los reportes de ruta se hace el query directamente
            
for($i=0;$i<count($vlineas)-1;$i++)
            {
            
                if((
$vlineas[$i][0]=='0')||($i==0))
                {
                    
                    
$consulta=$vlineas[$i+1];
                    
mssql_query($consulta,$conectid);
                    
//busco el numero de la transaccion    y va a depender de que tipo de archivo es 
                    
                    
switch($vlineas[0][0])
                    {
                        case 
'1':
                        {
                            
$consul="SELEct Iden from moyaa.stocktakingtransactions order by Iden DESC";
                            break;
                        }
                        case 
'2':
                        {
                            
$consul="SELECT Iden from moyaa.facesTransactions order by Iden DESC ";
                            break;
                        }
                        case 
'3':
                        {
                            
$consul="SELECT Iden from moyaa.PricesTransactions order by Iden DESC ";
                            break;
                        }
                        
                    
                    }
                    
$sql=mssql_query($consul,$conectid);
                    
$id=mssql_fetch_array($sql);
                    
$iden=$id[0];
                    
//$i=$i+1;
                
}
                else
                {                    
                    
$tran=str_replace('$iden',"'".$iden."'",$vlineas[$i]);
                    
mssql_query($tran,$conectid);
                }
            }
        }
        else
        {
            for(
$i=1;$i<count($vlineas);$i++)
            {
                
$consulta=$vlineas[$i];
                
mssql_query($consulta,$conectid);
            }
            
        }
        
    }
    
$nRuta="E:/Nutritional_succ/";
    if (
$gestor opendir($Ruta)) 
       {
           
           while (
false !== ($archivo readdir($gestor)))
           {
               if (
$archivo != "." && $archivo != ".."
               {
                
                echo  
$name=$Ruta.$archivo;
                echo  
$nname=$nRuta.$archivo;
                
rename($name,$nname);
                   echo 
"<br>";
               }
           }
           
closedir($gestor);
       }
     
    
    
mssql_close($conectid); 
    

  #2 (permalink)  
Antiguo 22/07/2009, 09:05
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Se duplican los registros en la BD

he visto tanto codigo que ya me mareo!!!!!!!!...

jajajajaja...

mira estuve bien tu codigo y igual existen cosas que no te entiendo ..jajaja

lo que yo haria, independiente de el programa, seria dejar comentada la linea donde yo supongo que estoy ejecutando el insert, y ver que pasa, se insertara de todas maneras, si es asi se esta ejecutando en otra parte del codigo, lo otro para probar es poner un Echo "Hola<br>" dentro del ciclo donde se ejecuta el sql, para ver cuantas veces paso por alli

Saludos
  #3 (permalink)  
Antiguo 22/07/2009, 10:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 133
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Se duplican los registros en la BD

Ok bueno te voy a explicar que pasa con este codigo, los archivos de texto guardan queries por lo tanto yo con leer una linea y ejecutarla ese es un query y bueno en realidad hay unos select porque el hace un insert de la visita como tal donde guarda datos como fecha de la visita y lugar de la visita, luego leo el codigo de la ultima visita insertada y hago los demas inserts que corresponden a datos tomados en la visita en mi caso datos de inventario u otros datos seguido te hare una copia de una transaccion guardada en el archivo saludos

Código HTML:
2 //este numero me indica que tipo de archivo es y el $iden que se ve los inserts es el dato que se consulta en la BD
Insert into moyaa.Facestransactions( CustomerId, MerchandizerID,[Date], Datepick) values('25', '14','2009-07-02 00:00:00', '2009-07-01 00:00:00'); 
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'6','26542','14');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'6','26534','14');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','31780','14');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'5','31798','14');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','22550','14');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','31819','14');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','33179','15');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'5','33187','15');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','26497','15');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','26518','1');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'5','28898','5');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','33996','1');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'6','39280','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'1','22744','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'2','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'3','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'11','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'9','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'10','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'7','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'8','0','44');
Insert into moyaa.faces(transactionId, BrandID, PRoductId, Faces) values($iden,'4','0','44');
0
  #4 (permalink)  
Antiguo 22/07/2009, 12:23
Avatar de chumisiado  
Fecha de Ingreso: enero-2006
Ubicación: Chilito
Mensajes: 69
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Se duplican los registros en la BD

Hola
Sabes que estuve mirando tu codigo y lo hice funcionar (medio con parches) y no encuentro que inserte 2 veces .... quizas los archivo de origen estan 2 veces o el problema va por otro lado...

Algo que me llamo la atencion es que estas usando
$vlineas[0][0] siendo que el arreglo $vlineas tien solo 1 dimension , si lo haces por los espacios mejor utilizael valor trim($vlineas[0]) que elimna los espacio a la izquier y derecha del dato..

Bueno Suerte...

saludos
Domingo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:25.