Bonjour a tous je bloque sur ce sujet. Je cherche si il n'y a pas la possibilité de récupéré grâce a la requête toute les données de plus d'un an. je poursuit mes recherche je post ici si j'avais je trouve la solution.
Bonjour a tous je bloque sur ce sujet. Je cherche si il n'y a pas la possibilité de récupéré grâce a la requête toute les données de plus d'un an. je poursuit mes recherche je post ici si j'avais je trouve la solution.
Est- ce que dans ta table il y a un champ date ou timestamp ?
Si oui, tu peux requêter en stipulant la date dans la clause WHERE de ta requête
Pour être plus clair j'ai bien un champ date dans une table qui s'appelle historique ou j'enregistre les dernière action des membres et je souhaite exécuter un tache cron qui archive les membres sans activité depuis plus d'un an. Cette tache sera exécutée 1 fois par mois.
Et bien comme dit par heretik25, tu construis la requête qui te permet de récupérer les colonnes souhaitées et dans le WHERE tu insère une condition de restriction sur la date.
Un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT -- les colonnes nécessaires et pas étoile FROM la_table WHERE la_colonne_date < DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR)
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
je me suis plus compliqué la vie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // Date il y a un an $jour = date("Y-m-d"); $un_an = date("Y-m-d", strtotime("-1 year", strtotime($jour))); if($liste_historique['date'] != NULL) { if($un_an>$liste_historique['date']) { echo 'archiver'.$liste_historique['id_candidat'].'<br>'; } }
en effet c'est beaucoup mieux pour la lisibilité.
Merci a vous j'étais parti dans du trop compliqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // Ont archive le candidats si il a un an sans activité $historique = $connexion -> prepare("SELECT DISTINCT id_candidat FROM historique WHERE date < DATE_SUB(CURRENT_DATE, INTERVAL 1 YEAR) ORDER BY id_candidat "); $historique -> BindValue('id_candidat', $num_candidat); $historique -> execute(); while($liste_historique = $historique -> fetch()) { echo 'archiver'.$liste_historique['id_candidat'].'<br>'; }![]()
Partager