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 )