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
3
A
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'
0
Vous pouvez faire une requête que vous obtiendrez cela. En fait, la documentation MySQL a exactement votre exemple. Faites une recherche rapide de "30 jours" sur cette page: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html.
1
Et si vous ne voulez pas utiliser cron et utiliser un MySQL 5.1 ou supérieur, vous pouvez utiliser un événement. http://dev.mysql.com/doc/refman/5.1/en/create-event.html
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? –
@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