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

mat -  
Mikey_UFC Messages postés 315 Statut Membre -
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 315 Statut Membre 1
 
DELETE FROM maTable WHERE date < (dateDuJour-3jour)
0
mat
 
Ok merci bien il faut placé le DELETE où exactement, après une requete SELECT ?
0
Mikey_UFC Messages postés 315 Statut Membre 1
 
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
mat
 
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
mat
 
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 315 Statut Membre 1
 
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
mat
 
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 315 Statut Membre 1
 
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