Eh bien, je ne connais pas la structure de votre base de données, mais disons que c'est quelque chose comme ça :
user_table
-----------------------------------------
user_id | date_of_redeem | subscription
-----------------------------------------
user1 | 2014-02-01 | 90
user2 | 2014-05-18 | 365
user3 | 2014-07-22 | 180
Ainsi, en utilisant uniquement des instructions SQL, vous pouvez utiliser quelque chose, comme DATE_SUB. Comparez la date_of_redeem à la date d'aujourd'hui moins le montant de l'abonnement. Si la valeur de date_of_redeem est supérieure, vous obtiendrez un résultat, sinon il renverra un ensemble de résultats vide.
SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'
Modifier :SQL Fiddle pour la requête ci-dessus :http://sqlfiddle.com/#!2/ f95ea/11
(il suffit de changer user3
à l'un des ID utilisateur pour vérifier s'ils renvoient des résultats.
si vous souhaitez obtenir un tableau avec toutes les dates d'expiration des abonnements, vous pouvez faire quelque chose comme ceci :
SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`
SQL Fiddle pour cela :http://sqlfiddle.com/#!2/f95ea/9