[php] suppression entrée Bdd par date
dubuducu
Messages postés
391
Date d'inscription
Statut
Membre
Dernière intervention
-
prosciuto145 Messages postés 92 Date d'inscription Statut Membre Dernière intervention -
prosciuto145 Messages postés 92 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je vous explique mon probleme,
je ne sais pas si c'est possible mais je souhaiterai avec votre aide savoir la methode pour supprimer au bout de 7 jours par exemple a compter de la $date (d'aujourdui) une entrée provenant d'un formulaire dans ma base SQL !
je recoi tous les jours des formulaires et je souhaiterai qu'ils aient donc une durée de vie de 7jours !
j'arrive a afficher la date d'aujourduid dans mes forms, aucun souci. je voudrai juste savoir comment faire le reste.
Merci d'avance pour vos reposnes :
je vous explique mon probleme,
je ne sais pas si c'est possible mais je souhaiterai avec votre aide savoir la methode pour supprimer au bout de 7 jours par exemple a compter de la $date (d'aujourdui) une entrée provenant d'un formulaire dans ma base SQL !
je recoi tous les jours des formulaires et je souhaiterai qu'ils aient donc une durée de vie de 7jours !
j'arrive a afficher la date d'aujourduid dans mes forms, aucun souci. je voudrai juste savoir comment faire le reste.
Merci d'avance pour vos reposnes :
A voir également:
- [php] suppression entrée Bdd par date
- Forcer suppression fichier - Guide
- Trier par date excel - Guide
- Suppression compte gmail - Guide
- Suppression page word - Guide
- Airpods 3 date de sortie - Guide
4 réponses
Je te donne une piste. Le timestamp (via la fonction time();), c'est une fonction qui renvois un chiffre qui s'incrémente a chaque seconde.
De la, tu peux stocker le timestamp actuel de ton entrée de formulaire via un :
<input type="hidden" value="<?php echo time(); ?>" name="timestamp" />
Il te sera trés facile de faire un calcul pour supprimer periodiquement les anciennes entrées :
60 (sec) * 60 (min) * 24 (heures) * 7 (jours) <= Lorsque timestamp actuel et timetamp de la base de donnée dépasse cet écart, tu supprime l'entrée via un DELETE FROM table WHERE [...]
Voilà =)
De la, tu peux stocker le timestamp actuel de ton entrée de formulaire via un :
<input type="hidden" value="<?php echo time(); ?>" name="timestamp" />
Il te sera trés facile de faire un calcul pour supprimer periodiquement les anciennes entrées :
60 (sec) * 60 (min) * 24 (heures) * 7 (jours) <= Lorsque timestamp actuel et timetamp de la base de donnée dépasse cet écart, tu supprime l'entrée via un DELETE FROM table WHERE [...]
Voilà =)
bon bin moi je suis pomé !
je vais tenter des petits trucs , merci quand meme pour la piste !
je vais tenter des petits trucs , merci quand meme pour la piste !
si je comprend bien,
je crée un champ timestamp. je stocke l'entrée grace au input <input type="hidden" value="<?php echo time(); ?>" name="timestamp" />.
apres je ne vois pas clairement (synthaxiquement et logiquement ) la procédure pour créer la date d'expiration souhaitée.
quand a la procédure de supression, la requete, je vois tout a fait ce qu'il faut faire.
peux tu m'eclairer sur mes points sombres, merci
je crée un champ timestamp. je stocke l'entrée grace au input <input type="hidden" value="<?php echo time(); ?>" name="timestamp" />.
apres je ne vois pas clairement (synthaxiquement et logiquement ) la procédure pour créer la date d'expiration souhaitée.
quand a la procédure de supression, la requete, je vois tout a fait ce qu'il faut faire.
peux tu m'eclairer sur mes points sombres, merci
Ben en fait, sauf dans le cas ou on dispose d'un hébergement pro avec un cron (taches qui peuvent être réalisé a intervalle particulier, par exemple une requete SQL), il t'est impossible de faire une requête qui s'exécute tous les 5min.
Cependant, il t'est possible de faire une fonction qui te permet de faire cette maintenance régulière de la base de donnée. Ducoup, c'est facile de la coller à plusieurs endroits afin que cette requête soit exécutée a chaque action sur cette table.
Cependant, il t'est possible de faire une fonction qui te permet de faire cette maintenance régulière de la base de donnée. Ducoup, c'est facile de la coller à plusieurs endroits afin que cette requête soit exécutée a chaque action sur cette table.
juste une question :
je met dans mon form.php
INSERT INTO ... ( champ1, ....., now());
et dans ma bdd je crée le champs TIME ... TIME
cela maffiche l'heure d'aujourdui.est-ce la bonne methode pour pouvoir rajouter 7*24*60*60 secondes (je ne sais pas kombien cela fé) et repondre a mon probleme initial
REQUETE: DELETE ... FROM ... WHERE time+7*24*60*60 > time ???
*
voyez vous ?
je met dans mon form.php
INSERT INTO ... ( champ1, ....., now());
et dans ma bdd je crée le champs TIME ... TIME
cela maffiche l'heure d'aujourdui.est-ce la bonne methode pour pouvoir rajouter 7*24*60*60 secondes (je ne sais pas kombien cela fé) et repondre a mon probleme initial
REQUETE: DELETE ... FROM ... WHERE time+7*24*60*60 > time ???
*
voyez vous ?
Excusez moi du UP de plusieurs semaines (vacances :D). CURRENT_DATE() est une fonction relative au SGBD (Système de Gestion de Base de Donnée, comme Mysql ou Oracle pour ne citer que les plus connus).
Ce n'est en aucun cas une sytaxe SQL stricte.
Il est cependant possible d'utiliser cette fonction pour arriver a un résultat donné, cependant le code risque de ne plus etre aussi portable et polyvalent sur certains SGBD !
Sinon la méthode de calcul avec le timestamp (expliqué par dubuducu) est le meilleur moyen pour procéder avec précision (jusqu'a ce que le timestamp soit remis a 0 :D)
Ce n'est en aucun cas une sytaxe SQL stricte.
Il est cependant possible d'utiliser cette fonction pour arriver a un résultat donné, cependant le code risque de ne plus etre aussi portable et polyvalent sur certains SGBD !
Sinon la méthode de calcul avec le timestamp (expliqué par dubuducu) est le meilleur moyen pour procéder avec précision (jusqu'a ce que le timestamp soit remis a 0 :D)
Est-il possible de lancer un script en permanence sur la base de donnees pour justement supprimer les donnees qui ont plus de 7 jours via des triggers ou procedure ou autre ?
Ou doit-on obligatoirement creer une seconde requete a chaque appel d'une premiere requete (si j'ai bien compris c'est ce que tu preconise).
Quel est ton type d'hébergement web ? =)