Yah, saya tidak tahu struktur database Anda, tetapi katakanlah seperti ini:
user_table
-----------------------------------------
user_id | date_of_redeem | subscription
-----------------------------------------
user1 | 2014-02-01 | 90
user2 | 2014-05-18 | 365
user3 | 2014-07-22 | 180
Jadi, dengan hanya menggunakan pernyataan SQL, Anda dapat menggunakan sesuatu, seperti DATE_SUB. Bandingkan date_of_redeem dengan tanggal hari ini dikurangi jumlah langganan. Jika nilai date_of_redeem lebih tinggi, maka Anda akan mendapatkan hasil, jika tidak maka akan mengembalikan kumpulan hasil kosong.
SELECT *
FROM `user_table`
WHERE `date_of_redeem` > DATE_SUB(NOW(), INTERVAL `subscription` DAY) AND `user_id` = 'desired_user_id'
Sunting:SQL Fiddle untuk kueri di atas:http://sqlfiddle.com/#!2/ f95ea/11
(cukup ubah user3
ke salah satu ID pengguna untuk memeriksa apakah mereka mengembalikan hasil apa pun.
jika Anda ingin mendapatkan tabel dengan semua tanggal kedaluwarsa langganan, Anda dapat melakukan sesuatu seperti ini:
SELECT `user_id` AS `User`, (DATE_ADD(`date_of_redeem`, INTERVAL `subscription` DAY)) AS `Subscription Ends`
FROM `user_table`
SQL Fiddle untuk ini:http://sqlfiddle.com/#!2/f95ea/9