tache cron et destruction de compte ?

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2007, 15:03

Bonjour,

Je cherche le moyen pour supprimer un compte automatiquement sans mon intervention !

Je m'explique : Un membre s'inscrit et 2 champs sont créer : 1 champ date pour enregistrer la date d'inscription et 1 champ dates pour savoir sa dernière connexion !

Pour faire de la place dans ma base,j'ai décider de supprimer tout les comptes inactif depuis plus de 2 mois !

Donc,pour éviter de le faire manuellement,ce qui serait très très long,je voudrait qu'il soit automatisé avec une tache cron !

Mais comment faire ?

Merci de votre aide :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 janv. 2007, 15:06

S'il s'agit d'une action ponctuelle (réalisée une seule fois), pas besoin de CRON.

Sinon, la complexité ne commence pas par le CRON mais par le script.
En effet, un cron n'est qu'une instruction qui lance un script PHP. Tu n'a donc qu'a créer ton script qui nettoie ta base et ensuite, tu pourras te pencher sur comment configurer un cron ;)

Sinon, est-ce que tu as pensé à avertir tes membres de la destruction de leur compte ? Peut être qu'une mailing list permettrais d'éviter des destructions sauvages ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2007, 15:18

oui comme tu dit la tache cron n'est pas compliquer a créer !

Mais c'est le script en lui même que je ne sait pas comment faire !

Et ce ne sera pas qu'une seule fois puisque j'ai environ 180 membres qui "abandonne" leur compte sur 450 !

Donc,la tache cron vérifierait tout les jours les comptes et si il y a des inactifs de 2 mois ==> suppression !

Pour finir, oui , les membres sont informer lors de leur inscription de la destruction de leurs comptes au bout de 2 mois d'inactivité !

Donc,déja,pour le script :

1) je fait une connexion a la base et je sélectionne le champ "dates" qui correspond a leur dernières connexion !

Mais pour la suite ==> j'en sait rien :lol:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 janv. 2007, 15:22

Et si au lieu de faire un select dans ta base, tu faisais directement un delete des enregistrements dont la date de dernière connexion est inférieur à 2 mois avant la date du jour ? :)

Regarde ce topic de la FAQ pour en savoir plus sur la manipulation des dates en sql :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 janv. 2007, 15:23

Il est possible de restreindre une requete DELETE avec un WHERE

Code : Tout sélectionner

DELETE FROM ma_table WHERE truc > machin
Dans l'idée, il faudrait que tu essaye de faire un SELECT qui sélectionne tous les comptes à supprimer. Quand tu es sur que ce SELECT fonctionne, tu remplace le "SELECT * FROM" par "DELETE FROM " et tu auras la requête qui te permet de supprimer les comptes inactifs depuis plus de 2 mois ;)

Pour les opérations sur les dates, regarde cet excellent tutoriel d'Ouckileou : http://www.phpfrance.com/forums/voir_sujet-8323.php
(Regarde directement les opération en SQL)

EDIT : owned :?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer