From b0983bb5fc3843b208aa9158a9422555d0c27135 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Thu, 7 Jan 2016 21:24:43 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20et=20renforcement=20de=20la=20gest?= =?UTF-8?q?ion=20de=20l'ann=C3=A9e+semestre=5Fpair?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/database.php | 23 +++++++++++++++++++---- test.php | 9 ++++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/manager/database.php b/manager/database.php index 8e179ca..9f00ecf 100755 --- a/manager/database.php +++ b/manager/database.php @@ -115,19 +115,34 @@ class DataBase{ public function getSemestreInfoFromTime($time){ $now = date('Y-m-d', $time); + /* On cherche si l'année en cours est définie et on y est */ $req = DataBase::getPDO()->prepare("SELECT * FROM semestrepair WHERE :now BETWEEN debut AND FIN"); $req->execute(array( ':now' => $now )); - $res = $req->fetch(); + /* Résultat bon, on le retourne */ if( is_array($res) ) return array('annee' => $res['annee'], 'semestre_pair' => $time >= strtotime($res['milieu']) ); + + /* Sinon, on recherche la dernière année entrée dans la BDD */ else{ - $semestre_pair = Date('m', $time) < 8; - $annee = ($semestre_pair) ? Date('Y', $time)-1 : Date('Y', $time); - return array('annee' => "".$annee, 'semestre_pair' => $semestre_pair ); + $req2 = DataBase::getPDO()->query("SELECT * + FROM semestrepair + WHERE annee in (select max(annee) from semestrepair);"); + $res2 = $req2->fetch(); + + /* Résultat bon, on le retourne */ + if( is_array($res2) ) + return array('annee' => $res2['annee'], 'semestre_pair' => $time >= strtotime($res2['milieu']) ); + + /* Sinon on retourne la valeur par défaut */ + else{ + $semestre_pair = Date('m', $time) < 8; + $annee = ($semestre_pair) ? Date('Y', $time)-1 : Date('Y', $time); + return array('annee' => "".$annee, 'semestre_pair' => $semestre_pair ); + } } } diff --git a/test.php b/test.php index 620a3a8..61eaf7f 100755 --- a/test.php +++ b/test.php @@ -47,7 +47,14 @@ require_once __ROOT__.'/manager/security.php'; debug(); -var_dump( DataBase::getInstance()->getSemestreInfoFromTime( time() ) ); +// var_dump(DataBase::getInstance()->getSemestreInfoFromTime( strtotime('2017-01-31') )); + + +// $ts = time(); +// $date1 = date('Y-m-d', $ts); +// $date2 = date('Y-m-d', strtotime($date1.' - 1 year')); +// var_dump( $date1 ); +// var_dump( $date2 ); /* [1] On récupère le semestre d'un étudiant