Ver Mensaje Individual
  #11 (permalink)  
Antiguo 01/08/2008, 21:10
Avatar de adex
adex
 
Fecha de Ingreso: marzo-2002
Ubicación: Lima, Perú, América Latina
Mensajes: 445
Antigüedad: 22 años, 1 mes
Puntos: 0
Respuesta: actualizar BD según la fecha

Hola Marvin, de verdad muchas gracias por atender mi mensaje, todo el día peleando buscando la forma como hacer funcionar tu propuesta pero solo consigue crear el archivo log.txt pero no realiza cambios a nivel Mysql

Pego nuevamete la tabla MySql y el cpodigo PHP, Capaz yo esté haciendo algo mal.

Código PHP:
CREATE TABLE alumno (
  
id_alumno int(11NOT NULL auto_increment,
  
fechafinal_dia varchar(11NOT NULL default '0',
  
fechafinal_mes varchar(15NOT NULL,
  
fechafinal_anio varchar(11NOT NULL default '0',
  
alumno_nombre varchar(100NOT NULL,
  
alumno_apellidos varchar(100NOT NULL,
  
alumno_secundaria varchar(200NOT NULL,
  
alumno_nota varchar(100NOT NULL,
  
fechafinal_flag int(1NOT NULL default '0',
  
PRIMARY KEY  (id_alumno)
ENGINE=MyISAM;

INSERT INTO alumno VALUES (1'01''06''08''Pepe1''Bolitas1''Matematica''a'1);
INSERT INTO alumno VALUES (2'10''06''08''Pepe2''Bolitas2''Religion''b'1);
INSERT INTO alumno VALUES (3'27''06''08''Pepe3''Bolitas3''''a'0);
INSERT INTO alumno VALUES (4'11''07''08''Pepe4''Bolitas4''Gramatica''c'1);
INSERT INTO alumno VALUES (5'15''07''08''Pepe5''Bolitas5''Fisica''b'1);
INSERT INTO alumno VALUES (6'16''07''08''Pepe6''Bolitas6''Biologia''c'1);
INSERT INTO alumno VALUES (7'18''07''08''Pepe7''Bolitas7''Arte''a'1);
INSERT INTO alumno VALUES (8'22''07''08''Pepe8''Bolitas8''Ciencias N''c'1);
INSERT INTO alumno VALUES (9'21''07''08''Pepe9''Bolitas9''Religion''a'1);
INSERT INTO alumno VALUES (10'01''08''08''Pepe10''Bolitas10''Quimica''c'1); 
Código PHP:
<?
include("conexion.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() 
                and fechafinal_flag=1
                "
;
$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=1;$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\r\n");
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\nFin Log [".$fecha."]\r\n======================================\r\n\r\n");
fclose($archivo);  
?>