Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/02/2014, 09:51
Avatar de Middrel
Middrel
 
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Error Update a base de datos

Hola buenos días,

Tengo el siguiente código, el cuál se va a ejecutar para un CronJob, les comento como funciona:

Este código va a revisar una tabla en la base de datos, donde están almacenados los datos de los usuarios (usuario, password, fecha de alta, fecha de baja, vigencia). Los usuarios tienen una vigencia de 3 meses con su password, entonces, cuando la fecha actual se aproxima a la de la vigencia, si es menor a 7 días y mayor a 0 te manda avisos; si la fecha es igual al día de la vigencia, entonces bloquea al usuario con un update a ese campo (0 = desbloqueado, 1= bloqueado).

El problema, es que cuando el día es igual a la fecha de vencimiento, entra a la opción en un case y marca error el update.

Este es el código en PHP:

Código PHP:
       $hoy date('Y-m-d');

    
// Seleccionamos a los usuarios 
    
$sqlSelectPassword mysqli_query($connect"Select id_usuario, usu_usuario, usu_nombre, usu_password, usu_alta, usu_vigencia, usu_baja, usu_correo From sys_usuarios"MYSQLI_USE_RESULT);

    while (
$rowSelectPassword mysqli_fetch_array($sqlSelectPasswordMYSQLI_ASSOC)) {
        
        
$alta $rowSelectPassword['usu_alta'];
        
$baja $rowSelectPassword['usu_baja'];
        
$usuario $rowSelectPassword['id_usuario'];    
        
                
// Calculamos la diferencia de días 
        
$dias diff_dte($hoy$baja);

        switch(
$dias){
    
            case 
'0'// Si es igual a la fecha de vigencia, se actualiza el campo
                
$sqlUpdateUsuarios mysqli_query($connect"Update sys_usuarios Set usu_bloqueo = 1 Where id_usuario = $usuario"MYSQLI_USE_RESULT) or die(mysql_error($connect));
                
mysql_free_result($sqlUpdateUsuarios);
                echo 
'Bloqueado';
            break;
            
            case (
$dias && $dias 0): // Si es menor a 7 o mayor a 0 manda avisos (por email, aún no implementados)
                
echo 'Cuenta por bloquear.';
        }
        
    } 
mysql_free_result($sqlSelectPassword);

        
// Función para calcular la diferencia entre los días
    
function diff_dte($date1$date2){
           if (!
is_integer($date1)) $date1 strtotime($date1);
           if (!
is_integer($date2)) $date2 strtotime($date2);  
           return 
floor(abs($date1 $date2) / 60 60 24);
    } 
y el error que marca es el siguiente:

Cita:
Warning: mysql_error() expects parameter 1 to be resource, object given in E:\XAMPP\htdocs\Sistema Facturacion\scripts\cronjobs-vigencia-pass.php on line 30
donde la línea 30 es esta:

Código PHP:
$sqlUpdateUsuarios mysqli_query($connect"Update sys_usuarios Set usu_bloqueo = 1 Where id_usuario = $usuario"MYSQLI_USE_RESULT) or die(mysql_error($connect)); 
Algo se me debe estar pasando por alto, pero no lo visualizo... alguna idea?

De antemano, gracias por sus comentarios.

Saludos!!