Suppression automatisée de table mysql après 30 jours

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Suppression automatisée de table mysql après 30 jours

Re: Suppression automatisée de table mysql après 30 jours

par dunbar » 11 août 2009, 19:25

Salut,

Pourquoi ne pas faire comme ceci :?:
Quand tu crée une annonce tu indique la durée de validiter exemple 30 jours.
Et quand tu affiche les annonce tu affiche les annonce dont la date de validiter est valable.

:arrow: Exemple dans la requête :

Code : Tout sélectionner

date_validiter > NOW() 
:arrow: NOW() -->Retourne la date courante au format 'YYYY-MM-DD HH:MM:SS'

Donc :
Dans cette exemple tu à un champs datetime pour la date de validiter :wink:

Re: Suppression automatisée de table mysql après 30 jours

par jojolapine » 11 août 2009, 19:21

Les solutions sont variées, mais toutes ont besoins de savoir quand à été publié l'annonce...
Donc il faut avoir dans ta table un champ de type DATETIME ou TIMESTAMP pour commencer...
Ensuite la question de supprimer les veilles annonces ou de simplement les cachés... c'est à toi de voir, sachant que par exemple dans l'avenir il te viendra peut-être l'idée de proposer à tes utilisateurs de prolonger la publication d'une annonce une fois celle-ci périmés... (un exemple hein...)
A ce moment là, si tu as préféré cacher les annonces "périmées", un simple changement de la date de publication suffira à la remettre en route....

Pour les manips sur les types dates:
faq-tutoriels/quelques-petites-manipula ... t8323.html pour commencer
http://dev.mysql.com/doc/refman/5.1/en/ ... tions.html (manuel mysql)
http://fr.php.net/manual/fr/ref.datetime.php (les fonctions php)

Test et reviens nous voir si ça ne fonctionne pas... ;)

Re: Suppression automatisée de table mysql après 30 jours

par FuZZyLine » 11 août 2009, 19:04

Salut,
Bonjour à tous !
Après quelques recherches, je n'ai toujours pas trouvé de solution à ma question.
C'est pourquoi je vous demande votre aide :roll:
Voila enfaite je fais un site d'annonce gratuite avec une base mysql mais j'aimerai que les annonces qui ont plus de 30 jours soient supprimée. Heureusement mon hébergeur offre un service de tâches planifiées pour exécuter régulièrement des script php.
Seulement, je n'ai aucune idée de ce que je pourrais mettre dans ce script.
J'ai aussi penser à ne pas supprimer les annonces de plus de 30 jours MAIS à afficher celles de moins de 30 jours mais je devrai alors faire de la maintenance...
Merci d'avance de votre aide :roll:
Cordialement, Dorian Savage
Perso j'utilise les users pour ce type de choses, je me explique:

Quand un utilisateur se log il te suffit d'embrayer sur une fonction sql de délétage à plus de 30 jours...
Ce qui peut s'écrire (+ ou -) ainsi:

DELETE FROM ta_base WHERE annonce > $date

Ou $date vaut la différence entre la date de création de l'annonce et aujourd'hui.

Espérant t'avoir aidé, bon code @+ ;)

Suppression automatisée de table mysql après 30 jours

par dorian » 11 août 2009, 16:05

Bonjour à tous !

Après quelques recherches, je n'ai toujours pas trouvé de solution à ma question.
C'est pourquoi je vous demande votre aide :roll:

Voila enfaite je fais un site d'annonce gratuite avec une base mysql mais j'aimerai que les annonces qui ont plus de 30 jours soient supprimée. Heureusement mon hébergeur offre un service de tâches planifiées pour exécuter régulièrement des script php.

Seulement, je n'ai aucune idée de ce que je pourrais mettre dans ce script.

J'ai aussi penser à ne pas supprimer les annonces de plus de 30 jours MAIS à afficher celles de moins de 30 jours mais je devrai alors faire de la maintenance...

Merci d'avance de votre aide :roll:

Cordialement, Dorian Savage