Page 1 sur 2

Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 21:02
par ISoon
Hello les amis :)

Je fais un site web et j'aimerais trouvé un systeme pour supprimer la ligne d'une table au bout d'1 semaine ?


J'aimerais savoir comment faire?

Pour m'aider, il vous faut le code source de quelle page?

Merci beaucoup

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 21:30
par Ascla
Bonsoir,

J'avais réalisé un script du même genre. Je m'explique :
Le script permettait de résilier des abonnements. Dés qu'un utilisateur souscrivait un abonnement d'un mois, j'ajoutais dans une base de donnée une date d'expiration ( date du jours + 30 jours ).
J'ai aussi créé un script qui a chaque exécution, comparait la date du jours avec la date d'expiration, et si la date d'expiration était inférieure, elle supprimait l'abonnement. Pour permettre l’exécution de ce script, j'avais mis en place un bot qui chargeait la page tous les jours à 00h00.

Donc en résumé, il faudrait définir pour chaque table une date d'expiration, et créer un fichier qui permettrait de comparer les dates et d'effectuer des modifications si la date venait à expirer.

Bonne soirée,

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 21:56
par damien_55
Hello,
Donc en résumé, il faudrait définir pour chaque table une date d'expiration, et créer un fichier qui permettrait de comparer les dates et d'effectuer des modifications si la date venait à expirer.
Tu veux dire ligne à la place de chaque ligne, je pense. :D

Oui, c'est ça, chaque ligne a un champ date de création par exemple. Tu fais un script qui selectionne chaque ligne, tu scrute la date (avec mysql, c'est simple date du jour - 7 (regarde les opérations sur les dates)) et tu effaces toutes les lignes qui ont plus de 7 jours.

Tu peux par exemple faire un tache cron qui se déclenche à 00:01 tout les matins (j'ai jamais aimé les cron à minuit 00:00 :wink: )

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 21:59
par ISoon
Hello,
Donc en résumé, il faudrait définir pour chaque table une date d'expiration, et créer un fichier qui permettrait de comparer les dates et d'effectuer des modifications si la date venait à expirer.
Tu veux dire ligne à la place de chaque ligne, je pense. :D

Oui, c'est ça, chaque ligne a un champ date de création par exemple. Tu fais un script qui selectionne chaque ligne, tu scrute la date (avec mysql, c'est simple date du jour - 7 (regarde les opérations sur les dates)) et tu effaces toutes les lignes qui ont plus de 7 jours.

Tu peux par exemple faire un tache cron qui se déclenche à 00:01 tout les matins (j'ai jamais aimé les cron à minuit 00:00 :wink: )
En clair, je fais un if qui examine toutes les lignes et si une ligne fais plus de 7 jours elles se suppriment directement?

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:11
par damien_55
<?php

$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)'";
$resultat = mysql_query($requete);
while ($date_expire=mysql_fetch_array($resultat,MYSQL_ASSOC)) {
Tu delete ici... mysql WHERE id='".addslashes($date_expire['id'])."'
}
?>
ça doit ressembler à ça de tete.

La requete te selectionne que les lignes ou la date est expirée: date du jour - 7 jours.

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:13
par Ascla
Hello,
Donc en résumé, il faudrait définir pour chaque table une date d'expiration, et créer un fichier qui permettrait de comparer les dates et d'effectuer des modifications si la date venait à expirer.
Tu veux dire ligne à la place de chaque ligne, je pense. :D
Oui exacte !
En clair, je fais un if qui examine toutes les lignes et si une ligne fais plus de 7 jours elles se suppriment directement?
Oui voilà. Et pour le chargement automatique de la page à telle heure, comme l'a dit Damien, il faut passer par une tache cron.

Bonne soirée,

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:20
par ISoon
<?php

$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)'";
$resultat = mysql_query($requete);
while ($date_expire=mysql_fetch_array($resultat,MYSQL_ASSOC)) {
Tu delete ici... mysql WHERE id='".addslashes($date_expire['id'])."'
}
?>
ça doit ressembler à ça de tete.

La requete te selectionne que les lignes ou la date est expirée: date du jour - 7 jours.
Ceci est il bon?
<?php
include('config.php')
$requete = "SELECT id, date FROM duel WHERE date < (NOW()+ INTERVAL 7 DAY)'";
$resultat = mysql_query($requete);
while ($date_expire=mysql_fetch_array($resultat,MYSQL_ASSOC)) {
DELETE FROM duel WHERE id='".addslashes($date_expire['id'])."'
}
?>

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:23
par damien_55
$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)'";
Il y a un apostrophes en trop.
$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)";
teste SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY) dans phpmyadmin et tu sauras. si ça te retourne bien les dates obseletes, c'est que la requete est bonne.

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:23
par damien_55
$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)'";
Il y a un apostrophes en trop.
$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)";
teste SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY) dans phpmyadmin et tu sauras. si ça te retourne bien les dates obseletes, c'est que la requete est bonne.

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:39
par ISoon
$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)'";
Il y a un apostrophes en trop.
$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)";
teste SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY) dans phpmyadmin et tu sauras. si ça te retourne bien les dates obseletes, c'est que la requete est bonne.

Voici se que sa ma répondu :

http://hpics.li/0d178ec

En clair toutes les tables, surement la colonne "Date" ne dois pas être bonne.

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:49
par damien_55
tu as bien testé:
SELECT id, date FROM duel WHERE date < (NOW()+ INTERVAL 7 DAY)
ta table est bien duel et ton champ qui contient la date s'appelle date ? d'ailleurs si c'est le cas change le nom du champ. date correspond aussi à une fonction php, ça peut induire en erreur.

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:55
par ISoon
tu as bien testé:
SELECT id, date FROM duel WHERE date < (NOW()+ INTERVAL 7 DAY)
ta table est bien duel et ton champ qui contient la date s'appelle date ? d'ailleurs si c'est le cas change le nom du champ. date correspond aussi à une fonction php, ça peut induire en erreur.
Oui j'ai bien testé

SELECT id, creation FROM duel WHERE creation < (NOW()+ INTERVAL 7 DAY)

J'ai modifier le nom de la colonne je l'ai appelé "Creation"

Voici la colonne :

http://hpics.li/b66ac54

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 22:59
par damien_55
SELECT id, creation FROM duel WHERE creation < (NOW() - INTERVAL 7 DAY)
peut etre mieux comme ça - pas +

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 23:03
par ISoon
SELECT id, creation FROM duel WHERE creation < (NOW() - INTERVAL 7 DAY)
peut etre mieux comme ça - pas +

Avec le moins sa marche ! :)

Re: Suppression d'une ligne au bout d'1 semaine

Posté : 10 mars 2014, 23:06
par damien_55
Oui, petite erreur d'inattention de ma part. :wink:

Tu lances un cron à minuit une tous les jours et voilà. :D

(si c'est résolu, bouton vert stp)