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);
?>
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