|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||||
|
Membre habitué
![]() Inscription : août 2006 Messages : 613 ![]() |
Bonjour,
J'ai la date d'inscription de chaque membre. J'ai la date actuelle. Je cherche à supprimer les données vieilles de 5 jours dont le champ (inscrption) serait égal à(attente) et envoyer des emails aux membres comme quoi le délai pour confirmer leur inscription est dépassée et que le membre a été supprimé. Il faut que ça se fasse automatiquement. Citation:
Code :
Code :
|
|||||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Il faut faire la part des choses, dans ta demande. Sur un forum dédié à MySQL, on peut répondre à la première question, à savoir comment supprimer de la table les inscriptions de plus de 5 jours, par exemple : Code :
ced |
||
|
|
00
|
|
|
#3 | ||
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Bonsoir,
peut-être faire un SELECT pour trouver l'id et mail des inscriptions périmées, puis faire une boucle pour la notification par e-mail. Au final et si toutes les notifications se sont déroulées correctement, faire un DELETE en utilisant la syntaxe IN avec la liste des id retournés par le SELECT. Exemple schématique : Code :
Cordialement, DaRiaN. |
||
|
|
00
|
|
|
#4 | |||
|
Membre habitué
![]() Inscription : août 2006 Messages : 613 ![]() |
Merci beaucoup Ced et Darian.
Concernant ton code, faut il déclarer le champ dateInscription d'une manière spéciale? Je dis ça parce que le mien est Varchar. Citation:
Merci beaucoup pour votre réponse |
|||
|
|
00
|
|
|
#5 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Bonjour,
le mieux serait de créer une tâche planifiée (crontab). Certains mutualisés le permettent, et si ce n'était pas le cas, il y a des solutions gratuites via le protocole HTTP. En ce qui concerne dateInscription, un champ date (ou datetime) plutôt qu'un varchar et créé un INDEX, cela serait parfait. Cordialement, DaRiaN. |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : août 2006 Messages : 613 ![]() |
Merci beaucoup mais précise moi encore cette partie.
Le fichier php tout seul avec ce code ne déclenche pas l'évènement dès que la date est atteinte? Il faut faire autre chose? C'est très compliqué cette histoire. Parce que normalement "rafraichir la page" est une action qui déclenche un évènement. Je croyais que la condition posée déclencherai automatiquement l'évènement |
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Manuellement oui, donc tous les 24h vous devrez déclencher l'évènement en lançant le script ou vous créez une tâche planifiée qui lancera automatiquement le script tous les jours à la même heure.
|
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Effectivement, pour que DATEDIFF fonctionne, il faut être sur un champ de type DATE...
Tu peux utiliser la fonction de conversion CAST(ton_champ AS DATE), mais il faut que ton champ date soit au format 'YYYY-MM-DD' pour que la conversion se passe bien. ced |
|
|
00
|
|
|
#9 | ||||
|
Membre habitué
![]() Inscription : août 2006 Messages : 613 ![]() |
Merci beaucoup.
Une dernière question. Quand je crée le champ date, je dois insérer la date dans ce champ ou il faut laisser le champ vide et c'est msql qui s'en charge. Dans ce code, j'ai omis le champ date. Est ce que c'est juste? Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Donc la date d'inscription sera '0000-00-00' ? Utilisez plutôt la fonction now().
|
|
|
00
|
|
|
#11 | ||||||
|
Membre habitué
![]() Inscription : août 2006 Messages : 613 ![]() |
Merci beaucoup Darain pour ta gentillesse et merci aussi pour le moderateur de m'avoir accorder son attention.
Seulement Darain, je ne sais pas où je dois utiliser cette fonction now(). Ici tous les codes. Dites-moi s'il vous plaît si tout a l'air normal? Table Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#12 |
|
Membre expérimenté
![]() Inscription : août 2005 Messages : 515 ![]() |
Comme je pense qu'il est toujours impossible d'associer une fonction à la valeur par défaut d'un champ date, il ne reste plus que la requête d'insertion.
Code :
INSERT INTO `membres` (`nom`, `dateInscription`, `statut`) VALUES ('$nom', now(), 'attente') |
|
|
00
|
|
|
#13 |
|
Membre habitué
![]() Inscription : août 2006 Messages : 613 ![]() |
Merci DaRian, Merci le modérateur.
Le code marche parfaitement. Je suis très content.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com