Nou, ik ken je databasestructuur niet, maar laten we zeggen dat het ongeveer zo is:
user_table
-----------------------------------------
user_id | date_of_redeem | subscription
-----------------------------------------
user1 | 2014-02-01 | 90
user2 | 2014-05-18 | 365
user3 | 2014-07-22 | 180
Dus als je alleen SQL-instructies gebruikt, zou je iets kunnen gebruiken, zoals DATE_SUB. Vergelijk de date_of_redeem met de datum van vandaag minus het abonnementsbedrag. Als de waarde van de date_of_redeem hoger is, zou je een resultaat krijgen, anders zou het een lege resultatenset opleveren.
SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'
Bewerken:SQL Fiddle voor de bovenstaande query:http://sqlfiddle.com/#!2/ f95ea/11
(verander gewoon user3
naar een van de gebruikers-ID's om te controleren of ze resultaten opleveren.
als je een tafel wilt hebben met alle vervaldata van het abonnement, dan kun je zoiets als dit doen:
SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`
SQL Fiddle hiervoor:http://sqlfiddle.com/#!2/f95ea/9