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
Tu veux dire ligne à la place de chaque ligne, je pense.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.
En clair, je fais un if qui examine toutes les lignes et si une ligne fais plus de 7 jours elles se suppriment directement?Hello,
Tu veux dire ligne à la place de chaque ligne, je pense.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.![]()
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)
<?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.Oui exacte !Hello,
Tu veux dire ligne à la place de chaque ligne, je pense.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.![]()
Oui voilà. Et pour le chargement automatique de la page à telle heure, comme l'a dit Damien, il faut passer par une tache cron.En clair, je fais un if qui examine toutes les lignes et si une ligne fais plus de 7 jours elles se suppriment directement?
Ceci est il bon?ça doit ressembler à ça de tete.<?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'])."' } ?>
La requete te selectionne que les lignes ou la date est expirée: date du jour - 7 jours.
<?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'])."'
}
?>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.$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.$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.$requete = "SELECT id, date FROM table WHERE date < (NOW()+ INTERVAL 7 DAY)";
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étu as bien testé: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.SELECT id, date FROM duel WHERE date < (NOW()+ INTERVAL 7 DAY)