2010-09-01 5 views
3

Je travaille sur un site qui gère les abonnements gratuits et je voudrais maintenant savoir comment annuler leurs abonnements après 30 jours d'inactivité, je sais que cela doit être fait avec cron-jobs mais je n'ai pas idée sur la façon de compter 30 après la dernière connexion de l'utilisateur?mysql et 30 jours

+1

Comment savoir si un utilisateur s'est connecté la dernière fois? Je veux dire, disons que vous deviez le faire manuellement, comment vous y prendrez-vous? –

+1

@Raj Il m'a fallu une seconde ou deux pour réaliser l'intention derrière votre question. J'ai presque répondu. : P – Novikov

Répondre

4
SELECT user_id FROM users WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) > last_logged_in_date 
2

Vous devez utiliser mysql fonction DATE_ADD

SELECT DATE_ADD('YOUR DATE', INTERVAL 30 day)

Voir le manuel de MySQL pour plus d'informations http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add.

Vous pouvez le faire en 1 instruction UPDATE

UPDATE yourTable SET active = 0 WHERE validity_date < CURRENT_DATE 

Et quand ils souscrivent, vous recevez le paiement

UPDATE yourTable SET active = 1, validity_date = DATE_ADD(CURRENT_DATE, INTERVAL 1 MONTH) WHERE id = 'somekind of id' 
Questions connexes