actualizacion automatica

Iniciado por TheKiLLeR, 2 Abril 2008, 22:45 PM

0 Miembros y 2 Visitantes están viendo este tema.

TheKiLLeR

Hola, estoy empezando en esto de php diseñando un pekeño juego, nada importante, es de penales, donde el jugador al registrarse elige ser arkero o delantero y va mejorando su habilidad hasta llegar a la máxima que es 10, bien, el tema es que yo quiero que los jugadores mejoren o suban 1 de habilidad por hora, y sin necesidad que el user esté logueado, sería algo como: cada 60 min, sumar 1 a la habilidad de todos los jugadores sin estar logueados cada uno.
Cómo se logra eso? o dónde puedo conseguir data sobre ese tema?
Saludos y gracias

Thaorius

Cada vez que el usuario pida una pagina, actualiza su cuenta.

O sea:
1) Usuario crea cuenta(Al crearse cuenta, pones un campo en la db con la hora(vease time()).
2) Cuando el usuario pide cualquier pagina estando logueado llamas a update_cuenta()
3) update_cuenta o como se llame, resta el retorno de time() con el valir de la db. El resultado es el tiempo que paso desde la ultima actualizacion. Entonces agarra y calcula cuantas habilidades o l oque sea correspondan y agregalas.

Cualqueir duda pregunta.

Un Saludo
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

TheKiLLeR

Ya entendí, o sea que por ejemplo, el usuario actualizó por última vez a las 16hs, y entra de nuevo a las 20hs, la página tiene que calcular cuántos intervalos de una hora pasaron y actualizar la db de acuerdo a esos intervalos, entonces tendría que usar un sistema con mes, día, hora y minutos, por si pasan días o incluso meses de no acceder a la cuenta.
Gracias por la ayuda, ya voy a contar cómo me fue.
Saludos

Thaorius

nono, 1 solo campo en la db. Lo llenas con lo que te reotrne una llamada a time(). Esta funcion devuelve el offset en segundos desde el unix epoch.

Saludos
Si te sirvio mi aporte, encontrarás más en www.teoxstudios.com. Gracias!
Buscando un buen hosting? Click aquí

TheKiLLeR

investigué sobre la función time()
y logré hacer algo así:

<?php
echo "<br>fecha vieja: ".$fecha1=1207230000//de acá va a tomar el dato de la DB.
$fechaactual=time();
$diferencia=($fechaactual-$fecha1)/60;
echo 
"<br>fecha actual: ".$fechaactual."<br />";
echo 
"diferencia: ".($fechaactual-$fecha1);
echo 
"<br>minutos que pasaron desde la última comprobación: ".$diferencia;

while(
$diferencia 60 or $diferencia ==60){
   echo 
"<br>pasaron mas de 60 min, se actualiza y da el sobrante"//realiza la actualización de la db con los nuevos datos y la fecha de la última actualizacion cada vez que se cumpla la condición del while.
   
$diferencia=($diferencia-60);
   echo 
"<br>se actualizará de nuevo en: ".(60 $diferencia)." minutos";                     
}

?>


básico y sin la parte donde accede a la db, pero es la idea, por si le sirve a alguien.

Saludos y gracias