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

Signaler
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
-
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
-
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

6 réponses

Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
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
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
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.
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
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 !
Messages postés
1662
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
30 juillet 2008
1
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.
Messages postés
186
Date d'inscription
jeudi 23 décembre 2004
Statut
Membre
Dernière intervention
9 juillet 2013

ça m'a l'air pas mal ça, je vois le principe......on va tester le >< ! ! !
merci
Laubro
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
14
En tous cas, php.net >' mktime' & 'strtotime' et tu auras ton bonheur !