Suppression de données

Suivre ce topic
Ce topic est suivi par : Personne...
Dwardower

Dwardower Le 24 septembre 2016 à 08:08 (Édité le 25 janvier 2019 à 17:52)

Bonjour à tous,

Ça doit surement être hyper facile mais je ne vois pas :/
Effectivement je cherche à supprimer des données vieilles de certaines heures comme ceci

  $req = $bdd->prepare('SELECT * from files WHERE so = 1 AND ud < NOW() - 3600');
  $req->execute();
Je vous rassure le delete est effectué plus tard ^^'
le but étant que dès que la donnée est vieille de plus de 3600 secondes alors elle est sélectionnée puis supprimée avec le fichier sauf que j'ai un problème, la donnée se supprime un peu en mode random ^^'

J'avais fais un autre code mais ce dernier supprimait la donnée à peine arrivée :(

Pouvez vous m'aider ?

EDIT : j'ai plus ou moins avancé, la suppression se fait toujours un peu random mais est déjà plus précise, voici le code :
  $req = $bdd->prepare('SELECT * from files WHERE so = 1 AND NOW() - (ud) > 3600');
  $req->execute();
C'est surtout quand j'indique plus de secondes comme 12h en secondes (43200 secondes) où la suppression se fait entre 8h et 12h
Thomas^
Dwardower

Dwardower Le 24 septembre 2016 à 08:19

J'ai passé une donnée à la date d'upload 2016-09-24 03:13:48
Cette donnée est censée être supprimée par ce script :
  $req = $bdd->prepare('SELECT * from files WHERE so = 12 AND NOW() - (ud) > 43200');
  $req->execute();


Or, entre maintenant (8h16) et l'heure enregistrée (3h13) il n'y a pas 12h d'écarts et pourtant, la donnée est supprimée ^^'

(Je n'ai pas edit le topic car je ne pouvais pas le sauvegarder ^^)
Balatharas

Balatharas Le 24 septembre 2016 à 10:20

Hello l'Ananas !
A mon avis tu devrais utiliser une tache cron. Si tu ne sais pas t'y prendre (on ne sais jamais) tu crée un petit fichier, et tu met ton script dedans et après tu met une petite variable pour annoncer le résultat. Cette petite variable va apparaître dans les résultats de la tache. 
Si tu sais pas ce que c'est c'est une option d'hébergeur.
Ça donnera en gros:
$req = $bdd->prepare('SELECT * from files WHERE so = 12 AND NOW() - (ud) > 43200'); 
$req->execute();
$msg = "Suppression effectuée.";
echo $msg;
Dwardower

Dwardower Le 24 septembre 2016 à 10:57

Merci mais je sais m'y prendre à ce niveau ne t'inquiète pas 😉
le problème est qu'il supprime la donnée un peu random avant le temps réglementaire ^^
Après c'est peut-être un problème que j'ai du réglé avec mon nouveau code, je verrai ça quand il sera en ligne mais merci quand même :p
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte