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

Bonjour,

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

Merci
Configuration: Windows XP
Firefox 3.0.3

6 réponses

  1. DELETE FROM maTable WHERE date < (dateDuJour-3jour)
    0
    1. Ok merci bien il faut placé le DELETE où exactement, après une requete SELECT ?
      0
      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
        1. 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
      2. Une petite piste les gars ?

        merci
        0
        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
          1. 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
        2. 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