Activar usuario al llegar a 60 dias
Publicado por Freecs (3 intervenciones) el 01/03/2018 14:41:36
Hola, estoy calculando la fecha de un usuario cuando recién se ingresa al sistema y al pasar 60 dias este usuario tiene que quedar activo para poder optar a ciertos beneficios, estoy tratando de hacerlo y se me ocurrio lo siguiente, me calcula los 60 dias, pero al pasar unos segundos el sistema vuelve a calcular otros 60 dias al usuario y lo deja inactivo nuevamente, se que mi problema esta en el ciclo, pero no se de que otra manera puedo solucionarlo, dejo aqui mi código, cualquier tipo de ayuda o recomendaciones seran bienvenidas, saludos.
Código:
Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php
$sql = new mysqli("localhost","root", "","DB");
$salida = "";
$query="SELECT * FROM personal ORDER BY rut_persona";
if (isset($_POST['consulta'])) {
$q=$sql->real_escape_string($_POST['consulta']);
$query="SELECT rut_persona,tipo_persona,nombres,apellido_p,apellido_m,tipo_asegurado,fecha_nac,email,sexo,sistema_salud,renta,tipo_contrato,cuenta_bancaria,tipo_cuenta,banco,reparticion,unidad,localizacion,celular,tel_casa,anexo,direccion_casa,direccion_trabajo,observacion,estado FROM personal
WHERE rut_persona LIKE '%".$q."%' OR tipo_persona LIKE '%".$q."%' OR nombres LIKE '%".$q."%' OR apellido_p LIKE '%".$q."%' OR apellido_m LIKE '%".$q."%' OR tipo_asegurado LIKE '%".$q."%' OR fecha_nac LIKE '%".$q."%' OR email LIKE '%".$q."%' OR sexo LIKE '%".$q."%' OR sistema_salud LIKE '%".$q."%' OR renta LIKE '%".$q."%' OR tipo_contrato LIKE '%".$q."%' OR cuenta_bancaria LIKE '%".$q."%' OR tipo_cuenta LIKE '%".$q."%' OR banco LIKE '%".$q."%' OR reparticion LIKE '%".$q."%' OR unidad LIKE '%".$q."%' OR localizacion LIKE '%".$q."%' OR celular LIKE '%".$q."%' OR tel_casa LIKE '%".$q."%' OR anexo LIKE '%".$q."%' OR direccion_casa LIKE '%".$q."%' OR direccion_trabajo LIKE '%".$q."%' OR observacion LIKE '%".$q."%' OR estado LIKE '%".$q."%'" ;
}
$resultado =$sql->query($query);
if ($resultado->num_rows > 0) {
$salida.= "<table class='table table-hover table-condensed table-bordered'>
<thead>
<tr style='text-align:center';>
<td><b>Reparticion<b></td>
<td><b>Rut<b></td>
<td><b>Nombres<b></td>
<td><b>Apellido P<b></td>
<td><b>Apeliido M<b></td>
<td><b>Tipo Asegurado<b></td>
<td><b>Fecha Nacimiento<b></td>
<td><b>Email<b></td>
<td><b>Fecha Activación<b></td>
<td><b>Acciones<b></td>
</tr>
</thead>
<tbody>";
$conexion=mysqli_connect('localhost','root','','DB');
$sql5="SELECT * FROM personal";
$result=mysqli_query($conexion,$sql5);
while($mostrar=mysqli_fetch_array($result)){
//los 24 datos de la base de datos de la persona
$datos= $mostrar[0]."||".
$mostrar[1]."||".
$mostrar[2]."||".
$mostrar[3]."||".
$mostrar[4]."||".
$mostrar[5]."||".
$mostrar[6]."||".
$mostrar[7]."||".
$mostrar[8]."||".
$mostrar[9]."||".
$mostrar[10]."||".
$mostrar[11]."||".
$mostrar[12]."||".
$mostrar[13]."||".
$mostrar[14]."||".
$mostrar[15]."||".
$mostrar[16]."||".
$mostrar[17]."||".
$mostrar[18]."||".
$mostrar[19]."||".
$mostrar[20]."||".
$mostrar[21]."||".
$mostrar[22]."||".
$mostrar[23];
//lvariable $datos2 es para rescartar el rut de la base datos y colcarlo en la carga
$datos2=$mostrar[0];
while ($fila= $resultado->fetch_assoc()) {
$rutp=$fila['rut_persona'];
$result2 = mysql_query("SELECT DATE(fecha_ingreso) from personal where rut_persona = '$rutp'",$link);
while ($row = mysql_fetch_row($result2)){
$vr = $row[0];
//echo "Fecha Ingreso".$vr;
}
//Aquí comienzo a calcular los 60 días después que se ingresa
$nuevafecha = strtotime ( '+60 day' , strtotime ( $vr ) ) ;
$nuevafecha = date ( 'j-m-Y' , $nuevafecha );
//echo "Fecha Activo".$nuevafecha;
$fecha1 = date('j-m-Y');
//echo "$nuevafecha";
$datetime1 = new DateTime($vr);
$datetime2 = new DateTime($fecha1);
$interval = $datetime1->diff($datetime2);
$vr2 = $interval->format('%R%a días');
//echo "$vr2";
//Si es igual a la fecha que se actualize un campo en la base de datos.
if ($vr2 == '+60 días') {
# code...
//echo "Activo";
mysql_query("UPDATE personal set estado ='Activo' where rut_persona='$rutp'");
}
else
{
mysql_query("UPDATE personal set estado ='no Activo' where rut_persona='$rutp'");
}
$salida.="
<tr style='text-align:center;'>
<td>".$fila['tipo_persona']."</td>
<td>".$fila['rut_persona']."</td>
<td>".$fila['nombres']."</td>
<td>".$fila['apellido_p']."</td>
<td>".$fila['apellido_m']."</td>
<td>".$fila['tipo_asegurado']."</td>
<td>".$fila['fecha_nac']."</td>
<td>".$fila['email']."</td>
<td>".$nuevafecha."</td>
<td>
<button class='btn btn-warning glyphicon glyphicon-pencil' data-toggle='modal' data-target='#modalEdicion' onclick= 'agregaform ('".$datos."')'></button>
</tr>";
}
}
}else{
$salida.="No hay datos";
}
echo $salida;
$sql->close();
?>
Valora esta pregunta
0