Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Dias regresivos de usuario en MySQL

Estas en el tema de Dias regresivos de usuario en MySQL en el foro de Mysql en Foros del Web. Hola, que tal? Saludos a todos. Necesito que alguien me eche una mano que estoy muy enredado. Resulta que tengo una base de datos en ...
  #1 (permalink)  
Antiguo 24/07/2008, 13:36
Avatar de Jesusowins  
Fecha de Ingreso: enero-2008
Mensajes: 71
Antigüedad: 16 años, 2 meses
Puntos: 0
Dias regresivos de usuario en MySQL

Hola, que tal? Saludos a todos. Necesito que alguien me eche una mano que estoy muy enredado.

Resulta que tengo una base de datos en MySQL en donde están alojados los usuarios, pero cada usuario tiene un tiempo de "caducidad", es decir, que la cuenta del usuario se desactiva cuando ha pasado un determinado tiempo (en mi caso son 30 dias). Si el usuario está inactivo, él puede volver a activar su cuenta, lo que le sumará 30 días al campo "Tiempo" (por llamarlo así) de la BD, pero al pasar los días se va restando el valor, si llega a cero, por su puesto el usuario se desactiva. Pero no consigo hacerlo.

Puse este tema aquí porque de verdad no sabía de que lenguaje se trataba exactamente, estoy trabajando con PHP y MySQL.

Un ejemplo claro puede ser las publicaciones de subastas o cosas así en webs de compras, donde el producto tiene una cuenta regresiva y al pasar los días se va restando.... algo así quisiera pero con los usuarios, me supe entender?

Muchas gracias por su atención.... de verdad.
  #2 (permalink)  
Antiguo 25/07/2008, 05:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Dias regresivos de usuario en MySQL

No acabo de entender si los usuarios caducan a los 30 dias esten activos o no o solo la caducidad se produce quando un usuario esta inactivo durante 30 dias.

En los dos casos es mejor que compares fechas que guardar un campo con los dias que quedan.

Yo me plantearia guardar la fecha de alta y calcular y guardar (o no) la fecha de baja, luego por diferencia de dias entre la fecha actual y la de baja cada dia puedes mostras los dias que quedan. Este seria el caso de que los usuarios caduquen tengan actividad o no.

En el caso de que la caducidad se produzca 30 dias despues de la ultima actividad es cuestion que cada vez que el usuario tenga una actividad guardes la fecha...

Luego para mostrar los usuarios no caducados siempre debes filtrar por los que la direncia entre la fecha del sistema y la de baja sea mayor a 0. La de baja siempre será la de alta mas 30 o la de la ultima actividad mas 30.

Quim

Última edición por quimfv; 25/07/2008 a las 06:05
  #3 (permalink)  
Antiguo 25/07/2008, 17:43
Avatar de Jesusowins  
Fecha de Ingreso: enero-2008
Mensajes: 71
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Dias regresivos de usuario en MySQL

Gracias por tu respuesta.

Bueno, de verdad que tu método está muy bien, lo de comparar fecha está obviamente entre las opciones pero no tengo mucha experiencia pero igual estoy dispuesto a aprenderlo.

De todas maneras te aclaro el caso:

Son usuarios que pagan una suscripción, la suscripción dura 30 días. Lo que quiere decir que el usuario paga al darse de alta y SUMA 30 días a su cuenta que por su puesto se irá restando al pasar los días. Y esta al llegar a cero, la cuenta se desactiva y ya no tendrá los beneficios de un usuario activo.

Pero el usuario tiene también la opción de pagar varias veces, o sea, si él paga 3 veces al mismo tiempo, entonces sumará un total de 90 de actividad para su cuenta.

¿Como podría hacer esto? en PHP y MsSQL?

Y aparte de eso, tambien un sistema de información que le informe al usuario por email cuando su cuenta esté por caducar.

Muchas gracias.
  #4 (permalink)  
Antiguo 31/07/2008, 01:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Dias regresivos de usuario en MySQL

Insisto en comparar fechas, con tu aclaración lo que haria es calcular la fecha de baja y guardar la en un campo, y sumar 30 dias a esa fecha cada vez que se haga un pago.

Mira las funciones de fecha de mysql aquí como se suman dias, y como se comparan fechas con esto tendrias solucionado el tener la fecha de caducidad y el numero de dias que quedan.

Usuario nuevo o que ha caducado
Fecha de caducidad= fecha actual + 30 * numero de pagos

Usuario activo que realiza un nuevo pago (o varios).
Fecha de caducidad = Fecha de caducidad + 30 * numero de pagos

Dias restantes
Dias = Fecha de caducidad - Fecha actual

Para lo que dices de mandar emails a los usuarios proximos a caducar necesitarás php para hacerlo deberias preguntar en el foro adecuado. Pero tambien necitarás SQL para seleccionarlos

Select nombre, email, fechaCaducidad-fechaActual as dias
from tabla
where fechaCaducidad-fechaActual=Dias que consideres prudentes

A partir del resultado de esta consulta php debe mandar los emails.


Quim

Nota: recuerda ver que sintaxis tienen las operaciones entre fechas. (12.5. Funciones de fecha y hora )

Última edición por quimfv; 31/07/2008 a las 01:21
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 23:26.