Suppression de données
- Accueil
- Forum
- Programmation
- PHP
- Suppression de données
Dwardower Le 24 septembre 2016 à 08:08 (Édité le 25 janvier 2019 à 17:52)
Ç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 Le 24 septembre 2016 à 08:19 (Édité le 1 janvier 1970 à 01:00)
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 Le 24 septembre 2016 à 10:20 (Édité le 1 janvier 1970 à 01:00)
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 Le 24 septembre 2016 à 10:57 (Édité le 1 janvier 1970 à 01:00)
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