PHP - Activar usuario al llegar a 60 dias

 
Vista:
sin imagen de perfil

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:

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Activar usuario al llegar a 60 dias

Publicado por Freecs (3 intervenciones) el 02/03/2018 02:04:00
Problema Solucionado, Elimine mi ciclo while y consulte con mayor lógica mi sentencia select, tema cerrado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar