Comment Supprimer donnée Bdd après X jours ??

Fermé
mat - 20 oct. 2008 à 13:10
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 - 22 oct. 2008 à 20:28
Bonjour,


Je cherche à savoir comment supprimer automatiquement une ou des entrées dans une base de donnée après X jours.

Merci
A voir également:

6 réponses

Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
20 oct. 2008 à 13:20
DELETE FROM maTable WHERE date < (dateDuJour-3jour)
0
Ok merci bien il faut placé le DELETE où exactement, après une requete SELECT ?
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
20 oct. 2008 à 13:44
Ca, c'est à toi de voir suivant quand tu veux l'exécuter exactement.

Tu peux le mettre au début de tes pages pour faire des contrôles très réguliers ou sur une page précise pour des contrôle un peu moins régulier.

Ou alors tu peux utiliser cron pour planifier le lancement de la requête.
Ou tu mets ton script sur une page spéciale que tu consultes automatiquement avec le planificateur de tâche de windows sur ton poste ( il faut forcément dans ce cas que ton PC soit allumé ).
0
Bonjour,

DELETE FROM maTable WHERE date < (dateDuJour-3jour)


Je ne comprends pas très bien cette requête, sachant que dans ma table je rentre bien la date pour chaque inscription à partir d'un formulaire.

........
$date = date("d/m/Y");
.......
$sql = "INSERT INTO matable(id, nom, mail, date) VALUES('','$nom','$mail','$date')";
mysql_query($sql);
........


Donc par exemple si je veux supprimer une entrée datant de 3 jours
DELETE FROM maTable WHERE date < ($date-3jour)


Est-ce bien cela que je dois faire ?

Besoin d'aide svp merci
0
Une petite piste les gars ?

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
22 oct. 2008 à 09:46
Par exemple :

$date_sec = mktime  ("", "", "", $mois, $jour, $annee) - 3*24*60*60; // Timestamp d'il y a 3 jours
$date = date("d/m/Y", $date_sec); // Date du jour - 3 jour


Tu peux rajouter l'heure dans le mktime si tu veux (3 1ers paramètres : heure, minute, seconde ).
0
Bonjour,

Merci encore donc la suppression dans la bdd sera comme ceci
DELETE FROM maTable WHERE date < ($date);
?

A quoi correspond également
- 3*24*60*60
?

Bonne journée merci bien
0
Mikey_UFC Messages postés 312 Date d'inscription jeudi 8 mars 2007 Statut Membre Dernière intervention 2 août 2010 1
22 oct. 2008 à 20:28
oui c'est la bonne requête.

3 jours, 24 heures, 60 minutes, 60 secondes. donc 3*24*60*60 => 3 jours en secondes.

Vu que mktime renvoie une date en seconde, on enlève 3 jours ( en seconde ) et on recalcule la nouvelle date.
0