Ver Mensaje Individual
  #9 (permalink)  
Antiguo 01/08/2008, 03:37
Avatar de desendoll
desendoll
 
Fecha de Ingreso: mayo-2008
Mensajes: 340
Antigüedad: 16 años
Puntos: 3
Respuesta: actualizar BD según la fecha

Marvin, estas en paro?¿ xD

Cita:
Iniciado por Marvin Ver Mensaje
Tendrias que hacer algo como:
Código PHP:
//CURDATE() = año-mes-dia
$sql "SELECT id_alumno, alumno_nombre, alumno_apellidos
        FROM alumno
        WHERE CONCAT(fechafinal_anio,'-',fechafinal_mes,'-',fechafinal_dia) = CURDATE()"
;
$result mysql_query($sql);
$i 0;
while(
$data mysql_fetch_array($result)){
    
$listadoFFAlumnos[$i]['id_alumno']            = $data['id_alumno'];
    
$listadoFFAlumnos[$i]['alumno_nombre']        = $data['alumno_nombre'];
    
$listadoFFAlumnos[$i]['alumno_apellidos']    = $data['alumno_apellidos'];
    
//agregamos dos datos para saber si se actualizo o no
    
$listadoFFAlumnos[$i]['ok']                    = 0;
    
$listadoFFAlumnos[$i]['error']                = 0;
    
$i++;
}
//contadores
$i 0;
$j 0;

//numero de elementos en $listadoFFAlumnos
$num count($listadoFFAlumnos);
//archivo para crear log
$archivo fopen("log.txt","a") or die("Problemas en la creacion");
$fecha date("d-m-Y H:i:s");
//Primera linea para diferenciar de otro dia
fputs($archivo"Log dia: [".$fecha."]=============================\r\n"); 
//hacemos el update
for($a=0;$a<$num;$a++){
    
$sqU "UPDATE alumno
            SET fechafinal_flag = 0
            WHERE id_alumno = "
.$listadoFFAlumnos[$a]['id_alumno'];
    
//para saber si se ejecuto
    
if(mysql_query($sql)){
        
//agregamos que ha tenido exito
        
$listadoFFAlumnos[$a]['ok'] = 1;
        
//contador de cambios exitosos
        
$i++;
    }else{
        
//agregamos que ha fallado
        
$listadoFFAlumnos[$a]['error'] = 1;
        
//contador de cambios fallidos por si quieres agregar mas info
        
$j++;
    }
}
fputs($archivo"Se han actualizado ".$i." de ".$num." alumnos");
fputs($archivo"Detalle de actualizaciones:\r\n");
//recorremos $listadoFFAlumnos para ver su detalle
for($b=0;$b<$num;$b++){
    
$estado "Sin informacion";
    if(
$listadoFFAlumnos[$b]['ok'] == 1){
        
$estado "Exitoso";
    }elseif(
$listadoFFAlumnos[$b]['error'] == 1){
        
$estado "ERROR";
    }
    
fputs($archivo$b."- ".$listadoFFAlumnos[$b]['alumno_nombre']." ".$listadoFFAlumnos[$b]['alumno_apellidos']." [".$estado."]\r\n");
}
fputs($archivo"\r\n=============================Fin Log [".$fecha."]\r\n\r\n");
fclose($archivo); 
No esta testeado pero te puede abrir una luz con respecto a lo que quieres hacer.

Suerte!
__________________
Francesc Jimenez