[php] suppression entrée Bdd par date
Fermé
dubuducu
Messages postés
391
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
19 mai 2010
-
11 juin 2008 à 14:19
prosciuto145 Messages postés 92 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 7 septembre 2009 - 7 juil. 2008 à 20:06
prosciuto145 Messages postés 92 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 7 septembre 2009 - 7 juil. 2008 à 20:06
A voir également:
- [php] suppression entrée Bdd par date
- Forcer suppression fichier - Guide
- Easy php - Télécharger - Divers Web & Internet
- Trier par date excel - Guide
- Suppression page word - Guide
4 réponses
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
15
11 juin 2008 à 14:23
11 juin 2008 à 14:23
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à =)
dubuducu
Messages postés
391
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
19 mai 2010
4
11 juin 2008 à 14:31
11 juin 2008 à 14:31
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 !
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
24
11 juin 2008 à 14:33
11 juin 2008 à 14:33
D'apres ce que j'ai compris il preconise cela:
A chaque requete que tu utilises, par exemple:
SELECT * FROM TABLE_EXEMPLE;
Tu fais en meme temps (juste avant)
DELETE FROM TABLE_EXEMPLE WHERE date>=7 jours
J'espere t'avoir aide
A chaque requete que tu utilises, par exemple:
SELECT * FROM TABLE_EXEMPLE;
Tu fais en meme temps (juste avant)
DELETE FROM TABLE_EXEMPLE WHERE date>=7 jours
J'espere t'avoir aide
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
15
>
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
11 juin 2008 à 14:37
11 juin 2008 à 14:37
Oui juste avant le SELECT tu fais un DELETE.
Sauf que le DELETE serai peut être un peut plus compliqué :
DELETE FROM table WHERE (table.time + 604800) < table.time;
Sauf que le DELETE serai peut être un peut plus compliqué :
DELETE FROM table WHERE (table.time + 604800) < table.time;
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
15
11 juin 2008 à 14:34
11 juin 2008 à 14:34
Quel est ton problème, quesque tu le comprend pas ? je peux expliquer plus clairement quelques points si tu le souhaite =)
dubuducu
Messages postés
391
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
19 mai 2010
4
11 juin 2008 à 14:38
11 juin 2008 à 14:38
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
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
15
11 juin 2008 à 14:42
11 juin 2008 à 14:42
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.
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
24
>
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
11 juin 2008 à 14:59
11 juin 2008 à 14:59
Ok, merci, finalement tu ma plus aide que dubuducu ^^
Bref, ty @+
Bref, ty @+
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
15
>
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
11 juin 2008 à 15:02
11 juin 2008 à 15:02
Vos problèmes étaient similaires, j'espère que mon aide a pu lui être bénéfique aussi ;)
dubuducu
Messages postés
391
Date d'inscription
lundi 8 novembre 2004
Statut
Membre
Dernière intervention
19 mai 2010
4
11 juin 2008 à 17:01
11 juin 2008 à 17:01
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 ?
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
24
11 juin 2008 à 20:52
11 juin 2008 à 20:52
DELETE FROM TABLE WHERE (CURRENT_DATE()-7) < 0
selon moi
selon moi
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
15
>
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
30 juin 2008 à 23:04
30 juin 2008 à 23:04
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)
prosciuto145
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
24
>
samyghan
Messages postés
73
Date d'inscription
mardi 10 juin 2008
Statut
Membre
Dernière intervention
28 janvier 2009
7 juil. 2008 à 20:06
7 juil. 2008 à 20:06
Oui mais en quoi c'est interessant si on a des moyens tel que current_date() pour nous simplifié la vie ?
autant les utilisés nan ?
autant les utilisés nan ?
11 juin 2008 à 14:29
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).
11 juin 2008 à 14:31
Quel est ton type d'hébergement web ? =)