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: 24 años, 6 meses
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(11) NOT NULL auto_increment,
  
fechafinal_dia varchar(11) NOT NULL default '0',
  
fechafinal_mes varchar(15) NOT NULL,
  
fechafinal_anio varchar(11) NOT NULL default '0',
  
alumno_nombre varchar(100) NOT NULL,
  
alumno_apellidos varchar(100) NOT NULL,
  
alumno_secundaria varchar(200) NOT NULL,
  
alumno_nota varchar(100) NOT NULL,
  
fechafinal_flag int(1) NOT 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);  
?>