supprimer entrée après une date

Eléphant du PHP | 170 Messages

13 janv. 2009, 20:21

Merci de vos conseils!
Lache toi ! :)

ViPHP
AB
ViPHP | 5818 Messages

13 janv. 2009, 20:29

Oui effectivement ça dépend de ce que tu veux faire.

Ton champ date semble être spécifique et indiquer la date de validité de l'enregistrement après quoi il sera supprimé. Donc cette méthode est bonne.

J'avais compris dans un premier temps que ce champ correspondait à la date d'enregistrement de la ligne et que tu souhaitais supprimer des enregistrements anciens.

Eléphanteau du PHP | 24 Messages

13 janv. 2009, 20:32

Ok d'accord et non c'est bien ça, je veux définir une date de validité ^^'


Je vous remercie tous pour l'aide que vous m'avez apporté!

Merci beaucoup à vous ^^'

ViPHP
ViPHP | 3607 Messages

13 janv. 2009, 21:52

Par contre au lieu de mettre la date à "zero",
autorise les valeurs nulles (ie NULL)
Et dans ta requête, tu test avec IS NULL ou IS NOT NULL
Un grand de ces lieu m'a dit ça l'autre jour ;)

Eléphanteau du PHP | 24 Messages

13 janv. 2009, 22:00

ok j'essayerais !

Merci du conseil ^^'

ViPHP
AB
ViPHP | 5818 Messages

13 janv. 2009, 22:49

Par ailleurs en autorisant la valeur null et en indiquant NULL par défaut dans ce champ date_f, cela t'éviterait même d'avoir à rentrer quoi que ce soit dans ce champ si tu ne souhaites pas de date de péremption. Les requêtes et les tables en seront optimisées.

Ta requête automatisée pourrait donc ressembler à
DELETE FROM nom_de_la_table WHERE  date_f IS NOT NULL AND date_f  < NOW()
Reviens nous mettre un petit résolu si ça fonctionne comme tu veux :wink:

Eléphanteau du PHP | 24 Messages

13 janv. 2009, 22:54

ok j'essayerais ça... mais bon ce sera pas trop pour tout de suite le résolu car je fais mon site en local... et je n'ai pas trouvé comment faire une commande cron en local... ou même une simulation du cron... enfin quoi que si je lance ma page en local en entrant l'adresse ça devrait faire la même chose qu'un cron... lol

Bon b j'essayerais au plus vite et je viendrais vous dire!

Eléphant du PHP | 170 Messages

13 janv. 2009, 23:12

Par contre au lieu de mettre la date à "zero",
autorise les valeurs nulles (ie NULL)
C'est vrai que c'est plus "élégant".
Et dans ta requête, tu test avec IS NULL ou IS NOT NULL
C'est même plus la peine :)
"WHERE NOW() > date_f" suffit !

ViPHP
AB
ViPHP | 5818 Messages

13 janv. 2009, 23:45

enfin quoi que si je lance ma page en local en entrant l'adresse ça devrait faire la même chose qu'un cron... lol
C'est certain que si ton script ne fonctionne pas si tu le lance maintenant, il a peu de chance de fonctionner même après minuit :lol: à moins que ce soit un script style vampire.
Bon aller faut que j'aille manger sinon j'y vais finir par raconter n'importe quoi :)

Eléphanteau du PHP | 24 Messages

15 janv. 2009, 23:43

J'ai mis ça:

Code : Tout sélectionner

DELETE FROM evenement WHERE NOW() > date_f
et ça marche niquel!!!

merci beaucoup à vous ;)

Bon b je vais avoir encore besoin de vous ... mais bon je vais faire un autre topic car ça n'a pas trop de rapport avec ça ^^'

Je met en résolu au passage ;)