Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2003, 14:09
Avatar de payo22
payo22
 
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 21 años, 5 meses
Puntos: 1
Comparacion de datos de la BD con Archivo

Hola Maestros:

Estoy haciendo un programita en el que leo linea por linea en mi archivo y voy checando si ya existe esa linea en mi base de datos y si ya existe no la inserta.

El problema es que la primera vez que lo ejecuto y mi base de datos esta vacia no hay problema ya que inserta el archivo sin ningun problema, pero si quiero volver a insertar el mismo archivo no me respeta la condicion que manejo de que si el registro ya existe no lo inserte.

Esto para evitar la duplicidad de datos.

el codigo que utilizo es el siguiente:

Código PHP:
<?php


$dir 
opendir('ARCHIVOS_BD');

  while(
false !== ($file readdir($dir))) {
     if ((
$file != ".") and ($file != "..")){
          
$Nom_arch fopen("ARCHIVOS_BD/".$file,"r");
        while(!
feof($Nom_arch)){

             
$cadena fgets($Nom_arch,4096);
    
           
$x split('[,]',$cadena);
             
             if ((
$x[9] >= 1) and ($x[9] <= 3)){
               
$tabla "TTAA".$x[0];
                 
             }
             
           
$fecha split('["]',$x[1]);
             
$hora split(' ',$fecha[1]);
             
$ps round($x[2]);
             
$pp round($x[3]);
             
$hgt round($x[4]);
             
$estacion $x[0];
             
$fecha2 $hora[0];
             
$dia split('[- ]',$fecha2); 
             
$hoy $dia[0].$dia[1].$dia[2].$dia[3];
             
$hora2 $hora[1];
             
$link mysql_connect("localhost","root","admin");         
             
mysql_select_db("RADIOSONDEO",$link);
             
$sentencia "select * from $tabla where Estacion = $estacion and Fecha = '$hoy' and Hora = '$hora2' and PS = $ps and PP = $pp and HGT = $hgt and TT = $x[5] and TD = $x[6] and DD = $x[7] and FF = $x[8] and Bloque = $x[9]";
             
$result mysql_query($sentencia,$link); 
             if (
$row=mysql_fetch_array($result)){
                  
                     echo 
"ya existen<br>"
                 
             }
             else {
                      

                     
                     
$sql "INSERT INTO $tabla (Estacion,Fecha,Hora,PS,PP,HGT,TT,TD,DD,FF,Bloque)";
                   
$sql .="VALUES ($x[0],'$hora[0]','$hora[1]',$x[2],$x[3],$x[4],$x[5],$x[6],$x[7],$x[8],$x[9])";
                   
mysql_query($sql);
                
             }
    
       }
    }
             
}

  
closedir($dir);

?>
pero no se en donde este el error .

en este programa leo los archivos que se encuentran en un directorio.

espero me puedan ayudar.

a el formato del archivo que leo es el siguiente:

76225,"1997-01-01 00", 859.0, 1000.0, -999.0, -999.0, -999.0, -999.0, -999.0, 1.0
76225,"1997-01-01 00", 859.0, 925.0, -999.0, -999.0, -999.0, -999.0, -999.0, 1.0
76225,"1997-01-01 00", 859.0, 859.0, 1428.0, 21.0, 1.0, 80.0, 4.0, 3.0

Última edición por payo22; 20/03/2003 a las 14:32