Foros del Web » Programando para Internet » PHP »

¿Cómo hacer esto? Recompensas.

Estas en el tema de ¿Cómo hacer esto? Recompensas. en el foro de PHP en Foros del Web. Tengo hecho un sistema para que el usuario al conectarse reciba 1 punto, pero la pregunta es: ¿Cómo puedo hacer de que ese punto se ...
  #1 (permalink)  
Antiguo 20/04/2014, 10:58
 
Fecha de Ingreso: febrero-2014
Mensajes: 31
Antigüedad: 10 años, 2 meses
Puntos: 0
¿Cómo hacer esto? Recompensas.

Tengo hecho un sistema para que el usuario al conectarse reciba 1 punto, pero la pregunta es:

¿Cómo puedo hacer de que ese punto se reciba cuando el usuario se conecte 1 día seguido? es decir, de que al conectarse no reciba nada, sino el día seguido de conectarse.
  #2 (permalink)  
Antiguo 20/04/2014, 11:03
Avatar de andres_15_  
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 15 años, 7 meses
Puntos: 7
Respuesta: ¿Cómo hacer esto? Recompensas.

Cita:
Iniciado por davidprogramacion Ver Mensaje
Tengo hecho un sistema para que el usuario al conectarse reciba 1 punto, pero la pregunta es:

¿Cómo puedo hacer de que ese punto se reciba cuando el usuario se conecte 1 día seguido? es decir, de que al conectarse no reciba nada, sino el día seguido de conectarse.
Creo que es fácil, haces un date('d'), de esa manera identificas que día es, de esa manera validas que solo de un punto por ese dia, que guardas (podria ser en la base de datos) y lo comparas cada vez que se conecte.

  #3 (permalink)  
Antiguo 20/04/2014, 11:54
 
Fecha de Ingreso: febrero-2014
Mensajes: 31
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: ¿Cómo hacer esto? Recompensas.

Cita:
Iniciado por andres_15_ Ver Mensaje
Creo que es fácil, haces un date('d'), de esa manera identificas que día es, de esa manera validas que solo de un punto por ese dia, que guardas (podria ser en la base de datos) y lo comparas cada vez que se conecte.

¿Seria algo asi?

Código PHP:
<?php
$dia 
date("d"); // Creo el date
if($dia == 48//Especifico que son 48 horas es decir que cada 48 horas se entrega el premio
{
  
$sql mysql_query("update users set premios= '1'  where id= '".USER_ID."'"); // SE ACTUALIZARÁ PREMIOS +1
  
}
  if(
$dia !== $myrow['premios'])
  { } else{
  
mysql_query("UPDATE users set puntos = puntos + 1 where id = '".$my_id."'");
  }
  
 
// Fin
 
?>
  #4 (permalink)  
Antiguo 20/04/2014, 17:19
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: ¿Cómo hacer esto? Recompensas.

El script que escribas... debes ejecutarlo 1 vez al dia..... asi que.... debes configurar con cronojob

En el cronojob dices la frecuencia de ejecucion y el nombre del script php a ejecutar
__________________
Salu2!
  #5 (permalink)  
Antiguo 20/04/2014, 17:34
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: ¿Cómo hacer esto? Recompensas.

Hola davidprogramacion este tema igual es mas de mysql que de php ... ,
para hacer algo así deberías tener un control en bd cada vez que entra el user e insertar en bd ...
y luego hacer una comprobación de puntos algo así ...

Código MySQL:
Ver original
  1. SELECT DATEDIFF(CURDATE(),'2014-04-19') from tabla where user id = numUsuario

la función Datediff te calcula los días entre rangos de fechas con lo que deberías cambiar la fecha que te he puesto por un una col que deberías crear en tu tabla user, por ejemplo FecUltimVisita .En esa columna cada vez que un usuario visite tu página y cargue tu script php primero de todo deberías hacer un update en FecUltimVisita ...

De esta manera podrás calcular si la salida de sql es ==1 entonces haces un insert en puntos!

Espero haberte ayudado !

Saludos.

Acabo de releer la pregunta y no entendí bien sorry...

Yo utilizaría el ejemplo de que te he puesto solo que si quieres que la puntuación apareciera con un día de retraso ...
en puntos ademas de controlar los puntos del user podrías controlar la fecha de recepción de esos puntos... de manera que pudieras leer cuando fue la ultima fecha de ese user que recibe puntos ... solo que al hacer el insert yo le añadiría la función mysql :
Código MySQL:
Ver original 

Así que a la hora de recuperar la fecha de visualización de los puntos .. esta tenga sumado 1 dia + .. es decir que si en tu php compruebas la fecha de aparición de esos nuevos puntos hasta el día siguiente no sera == true!

Saludos!

Última edición por Djoaq; 20/04/2014 a las 17:45 Razón: Me leí mejor la pregunta!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:05.