Supprimer un enregistrement après X jours [Résolu]

Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
- - Dernière réponse : malik7934
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
- 10 janv. 2005 à 20:09
bonjour,

je suis sur une partie petites annonces de mon site, mais je souhaiterai limiter dans la durée
la présence de l'annonce (1 semaine ou 2 ou 3 ou 4)
Y a t'il un "truc" pour faire en sorte de supprimer l'enregistrement automatiquement au bout de X jours donc ?
Genre dans le formulaire, une case a cocher 1 sem / 2 sem / 3 sem / 4 sem

Car je ne souhaiterait pas a avoir à intervenir manuellement sur toutes les annonces à supprimer (si jamais le site marche ! ! ! )

Merci
Laubro
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
2
3
Merci
J'ai fait un script pour annuler des comptes non activés après 24 h dans le cadre d'un développement perso... je te le mets là:



<HTML><TITLE>Comptes &#233;limin&#233;s</TITLE>





<?php

$serveur = '*****';

$login = '*****';

$mdp = '*****';

$base = '*****';

mysql_connect($serveur,$login,$mdp);

mysql_select_db($base);



$select="SELECT * FROM ***** ORDER BY date";

$resultat=mysql_query($select);



$i = 0;



while($ligne=mysql_fetch_array($resultat)){



    $curday  = mktime(0 , 0 , 0 , date("m") , date("d") , date("Y"));

    $oldday  = strtotime($ligne['date']);

    $curtime = mktime(date("H") , date("i") , 0 , date("m") , date("d") , date("Y"));

    $oldtime = strtotime($ligne['time']);



    if ($curday - $oldday > 0){

        if (($curtime-$oldtime)>0){ // si cela fait pluse de 24h

            $nom = $ligne['login'];

              echo
"La date d'expiration est
d&#233;pass&#233;e pour ".$nom."
";

            $select2="DELETE FROM ****** WHERE login = '$nom';";

            $resultat2=mysql_query($select2);

            $i=$i+1;

        }

    }

}





echo "
".$i." compte(s) annul&#233;(s)";

?>

</HTML>





Ensuite tu exécutes toi même une fois de temps en temps ton script ou
tu automatises avec cron (http://www.phpcs.com/code.aspx?ID=28740)...
et si tu n'as pas accès à cron, ben tu utilises mais c'est moi drôle de prendre du tout mâché



See you, Malik7934

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de malik7934
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
3
Merci
Pas besoin de cron... tu fais juste une vérification de date... si elle dépasse X temps, tu ne laffiches pas simplement...

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_GRenard
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
2
0
Merci
cron, c'est pour la beauté du geste , c'est clair que tu n'en as pas besoin si tu n'as que ça à gérer, mais si tu bosses sur x sites.... ça sert !
Commenter la réponse de malik7934
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
0
Merci
Sinon, si tu veux VRAIMENT supprimer tu peux faire une requête SQL du
style DELETE FROM xxx WHERE date_dinsertion < NOW()-3600



Ici, il va supprimer tout ce qui est plus vieux d'une heure...

Si tu veux garder des backup, tu fais simplement un

SELECT ... FROM xxx WHERE date_dinsertion > NOW() - 3600




MMM j'espere je me suis pas trompé dans les < et >... sinon tu comprends le principe...

PHP Guru
Écoutez les conseils d'un vieux sage ! Ils sont souvent très utiles.
Commenter la réponse de cs_GRenard
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
0
Merci
ça m'a l'air pas mal ça, je vois le principe......on va tester le >< ! ! !
merci
Laubro
Commenter la réponse de laubro
Messages postés
1162
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
2
0
Merci
En tous cas, php.net >' mktime' & 'strtotime' et tu auras ton bonheur !
Commenter la réponse de malik7934