[RESOLU] Supprimer les ligne SQL datant d'un certain temps

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Supprimer les ligne SQL datant d'un certain temps

Re: [RESOLU] Supprimer les ligne SQL datant d'un certain tem

par thib41 » 14 juin 2013, 12:42

Pour ceux qui liraient ce poste pour savoir comment faire, sachez que j'ai fais une erreur dans mon ancien code (le "-" ne modifiait que l'heure, non la minute, il faut donc créer des variables différentes pour l'heure et la minute) :
//après s'être connecté à la BDD et avoir récupéré le champ [heure] dans $heure :

// définition de la variable affichant l'heure
$time = date("H");

// définition de la variable affichant la minute
$time1 = date("i");

//création de la variable associée à l'heure actuelle moins une heure :
$time2 = $time-1;

//création de la variable associée à l'heure ET minute actuelle moins une heure  : 

$time4 = "".$time2.":".$time1."";

//Si l'heure de la BDD est inférieure à $time4, alors supprimer la ligne :

if($heure <= $time4){
   $del = "DELETE FROM Votre_Table";

   mysql_query($del) or die (mysql_error());
}

Re: Supprimer les ligne SQL datant d'un certain temps

par Lyssorus » 14 juin 2013, 11:26

Parfait, parfait.

Si tu as réussi et que ça te plait c'est tout bon ;)

Pense à mettre en Résolut si tu n'as pas d'autres question :)

Re: Supprimer les ligne SQL datant d'un certain temps

par thib41 » 14 juin 2013, 11:20

Merci beaucoup, mais j'ai finalement opté pour la simplicité avec un if ;)
$time = date("H:i");

$time1 = $time-"01:00";

if($heure <= $time1){
   $del = "DELETE FROM table";
 mysql_query($del) or die (mysql_error());
}
Ça semble fonctionner :)

Re: Supprimer les ligne SQL datant d'un certain temps

par Lyssorus » 14 juin 2013, 09:49

Hummm...


il faut donc bien avoir mis un format date je pense dans la bdd, ensuite tu recharge la valeur de la bdd
<?
mysql_connect("host","user",""); 
mysql_select_db("Nom_BDD");

$sql = 'SELECT Date FROM Nom_Table';
$rowDate = mysql_query($sql);
$TableauDate = mysql_fetch_row($rowDate);

mysql_close(); 
?>
Et là tu fait une boucle qui test toute les cases du TableauDate

Quand une date est supérieur à 1h

Tu recommence :
<?
mysql_connect("host","user",""); 
mysql_select_db("Nom_BDD");

$sql = 'DELETE * FROM Nom_Table WHERE Date = '.$TableauDate[numéro concerné];
mysql_query($sql);

mysql_close(); 
?>
Je ne pense pas que ça fonctionne comme ça, hein, je n'ai pas testé ^^'
Mais je pense que dans l'idée ça devrait pas trop mal se passer.


Édit : Je viens de trouver un truc intéressant

DELETE * FROM historique WHERE date_hist < CURDATE() - INTERVAL 10 DAY

À potasser je dirais :p

Re: Supprimer les ligne SQL datant d'un certain temps

par thib41 » 14 juin 2013, 09:34

Je pense qu'il te faut une colonne date de création ou tu range l'heure (au moins, peut être toute la date)

Et tu la test régulièrement, genre toute les 5 ou 10 minutes, pour voir celle qui sont supérieur à une heure d'ancienneté.

C'est ce que j'ai fait, mais je n'arrive pas à supprimer selon l'ancienneté... Je test des code mais aucun ne fonctionnent jusque maintenant :/

Re: Supprimer les ligne SQL datant d'un certain temps

par Lyssorus » 14 juin 2013, 09:31

Je pense qu'il te faut une colonne date de création ou tu range l'heure (au moins, peut être toute la date)

Et tu la test régulièrement, genre toute les 5 ou 10 minutes, pour voir celle qui sont supérieur à une heure d'ancienneté.

Supprimer les ligne SQL datant d'un certain temps

par thib41 » 14 juin 2013, 09:27

Bonjour !

J'aimerais supprimer les lignes SQL de ma table qui datent de plus d'une heure.

Comment faire ? Merci !

Thib