Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2009, 19:28
Lausnif
 
Fecha de Ingreso: mayo-2009
Mensajes: 27
Antigüedad: 14 años, 10 meses
Puntos: 0
Actualizacion de base de datos

HOLA, TENGO UN PROBLEMA CON UNA ARCHIVO PHP, QUE SE ENCARGA DE ACTUALIZAR UNA BASE DE DATOS, RESULTA QUE ES DE UNA DB DE UNA PLANTA METEOROLOGICA, ENTONCES POR CADA PLANTA, YO TENGO UNA CARPETA, Y DENTRO DE ESA CARPETA ESTAN LOS DATOS QUE SE ENVIAN DESDE LA PLANTA EN UN ARCHIVO DENOMINADO DOWNLOAD.TXT ALGUNOS DE ESOS ARCHIVOS SON LOS QUE TENGO QUE INSERTAR CADA DIEZ MINUTOS EN UNA BASE DE DATOS. HASTA AHI CASI TODO LO HACE BIEN, ESTE ES EL CODIGO QUE TENGO:

<?php
include("conexion.php");
$m=0;
$path_folder1 = "C:\wamp\www\prueba_leer\Estaciones/"; // mira el / final!
$results = array();
if ($dh = opendir($path_folder1)) {
while (($dir = readdir($dh)) !== false) {
if(is_dir($path_folder1.$dir) && $dir!="." && $dir!=".." && $dir!="EstacionNula") $results1[] = $dir;
}
closedir($dh);
}
foreach($results1 as $r1) {


$results = array();
$fp = fopen("C:\wamp\www\prueba_leer\download.txt", "r");
if($fp) {
$cnt_line = 1;
while(!feof($fp)) {
$line = fgets($fp, 4096);
$line = trim($line);
$line = preg_replace("/\s+/", " ", $line); // esto hace que muchos espacios se vuelvan en uno
$results[$cnt_line] = explode(" ", $line);
$cnt_line++;

}
fclose($fp);

}
$key=2;
foreach($results as $key=>$value) {
//echo "Linea numero $key<br/>";
foreach($value as $k=>$v) {}
$sql="INSERT INTO estaciones_meteorologicas (`id_estacion`, `nombre_estacion`, `numero_estacion`, `fecha`, `hora`, `radiacion`, `temperatura_exterior`, `temperatura_interior`, `humedad_relativa`, `velocidad_viento`, `direccion_viento`, `THWS`, `lluvia_recreativa_Q1`) VALUES ('', '$results1[$m]','','$value[0]','$value[1]','$value[19]','$value[2]','$value[27]','$value[28]','$value[7]','$value[8]','$value[15]','$value[18]')";
mysql_query($sql);
echo $sql."<br/>";
echo "<hr/>";
}
$m++;
}

?>

AHORA, LOS PROBLEMAS:


PRIMERO: EMPIEZA A METER LOS DATOS BIEN, PERO LLEGA AL FINAL Y ME DICE : UNDEFINED OFFSET 19 IN LINEA 35 (LA LINEA 35 ES DONDE HAGO EL INSERT)
UNDEFINED OFFSET 2 IN LINEA 35
UNDEFINED OFFSET 27 IN LINEA 35
UNDEFINED OFFSET 28 IN LINEA 35

SEGUNDO:
COMO PODRIA HACER PARA QUE LOS DATOS SE ACTUALICEN DE MANERA QUE SE AGREGUEN SOLO LOS DATOS NUEVOS, ES DECIR, USAR UN UPDATE DE FORMA QUE SE FIJE QUE NOMBRE DE PLANTA TIENE, Y LA HORA Y FECHA DEL ULTIMO CAMPO INSERTADO YA EN LA TABLA, PARA ASI DESDE ESE EN ADELANTE, AGREGAR LOS QUE FALTAN

TERCERO: HICE UN .BAT, PARA EJECUTAR ESTO, Y RESULTA QUE SI LO EJECUTO A MANO, ME INSERTA BIEN, HASTA LOS ERRORES ESOS DEL OFFSET, PERO SI LO PROGRAMO EN "TAREAS PROGRAMADAS" SE EJECUTA, VEO EL CMD QUE SE ABRE Y SE CIERRA, Y LUEGO CUANDO ME FIJO EN LA BASE DE DATOS, NO AGREGO NADA, VOY A TAREAS PROGRAMADAS Y EN ULTIMO RESULTADO, ME DA COMO RESPUESTA 0X1, ESTO PUEDE SER POR LO DE OFFSET TAMBIEN? O SINO PORQUE PUEDE SER???
DESDE YA MUCHISIMAS GRACIAS, Y DE VERDAD AGRADECERIA SI ALGUIEN ME ECHA UNA MANO. CUALQUIER COSA QUE NO ME HAYA EXPLICADO BIEN, O SI NECESITAN ALGUN OTRO DATO, PREGUNTARMELO.
GRACIAS.