diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index 0a6c7614..fd4b99b9 100644 --- a/Sources/src/app/controller/AthleteController.php +++ b/Sources/src/app/controller/AthleteController.php @@ -201,8 +201,8 @@ class AthleteController extends BaseController $listActivity = []; foreach ($activityGateway as $entity) { $activity = $map->activityEntityToModel($entity); - $listActivity[] = ['idactivity' => number_format($activity->getIdActivity()), 'type' => $activity->getType(), - 'date' => $activity->getDate()->format("D j F Y"), 'heureDebut' => $activity->getHeureDebut()->format("H\h i"), 'heureFin' => $activity->getHeureFin()->format("H\h i"), + $listActivity[] = ['idactivite' => number_format($activity->getIdActivity()), 'type' => $activity->getType(), + 'date' => $activity->getDate()->format("D j F Y"), 'heurededebut' => $activity->getHeureDebut()->format("H\h i"), 'heuredefin' => $activity->getHeureFin()->format("H\h i"), 'effortRessenti' => $activity->getEffortRessenti(), 'variabilite' => $activity->getVariability(), 'variance' => $activity->getVariance(), 'ecartType' => $activity->getStandardDeviation(), 'moyenne' => $activity->getAverage(), 'max' => $activity->getMaximum(), 'min' => $activity->getMinimum(), 'temperature' => $activity->getAvrTemperature()]; diff --git a/Sources/src/app/controller/UserController.php b/Sources/src/app/controller/UserController.php index ca403f69..c6301d5e 100644 --- a/Sources/src/app/controller/UserController.php +++ b/Sources/src/app/controller/UserController.php @@ -5,6 +5,7 @@ namespace App\Controller; use App\Container; use App\Router\Request\IRequest; use App\Router\Response\Response; +use Database\ActivityMapper; use Shared\Attributes\Route; use Twig\Environment; use Data\Core\Preferences; @@ -49,6 +50,7 @@ class UserController extends BaseController $activity = $athleteGateway->getListActivity('1');//$currentUser->getId() // Log::dd($activity); $chart = []; + // PROBLEME AVEC LE GRAPHIQUE Soucis avec le graphique : Undefined array key "nbactivite" ligne 57 foreach($activity as $act){ $chart[] = ['act' => $act['nbactivite'], 'mois' => date('m', $act['mois'])]; } diff --git a/Sources/src/data/core/database/ActivityEntity.php b/Sources/src/data/core/database/ActivityEntity.php index 7f14956e..be31539a 100644 --- a/Sources/src/data/core/database/ActivityEntity.php +++ b/Sources/src/data/core/database/ActivityEntity.php @@ -18,7 +18,7 @@ class ActivityEntity { private $temperatureMoyenne; // Getters - public function getIdActivity() { + public function getIdActivity() :int { return $this->idActivity; } diff --git a/Sources/src/data/core/database/ActivityMapper.php b/Sources/src/data/core/database/ActivityMapper.php index 296c03c8..adad8141 100644 --- a/Sources/src/data/core/database/ActivityMapper.php +++ b/Sources/src/data/core/database/ActivityMapper.php @@ -73,7 +73,7 @@ class ActivityMapper { /** * @throws \Exception */ - public function ActivityEntityToModel(ActivityEntity $activiteEntity):Activity { + public function activityEntityToModel(ActivityEntity $activiteEntity):Activity { $date = new DateTime($activiteEntity->getDate()); $heureDebut = new \DateTime($activiteEntity->getHeureDebut()); $heureFin = new \DateTime($activiteEntity->getHeureFin()); diff --git a/Sources/src/data/core/database/AthleteGateway.php b/Sources/src/data/core/database/AthleteGateway.php index e94155d0..2fd651ba 100644 --- a/Sources/src/data/core/database/AthleteGateway.php +++ b/Sources/src/data/core/database/AthleteGateway.php @@ -88,12 +88,19 @@ class AthleteGateway { public function getListActivity(int $idAthlete): array { - $query = "SELECT count(ac.idActivite) AS nbActivite, EXTRACT(MONTH FROM ac.date) AS mois - FROM Athlete ath, Activite ac - WHERE ath.idAthlete = :idAthlete + /*$query = "SELECT count(ac.idActivite) AS nbActivite, EXTRACT(MONTH FROM ac.date) AS mois + FROM Athlete at, Activite ac + WHERE at.idAthlete = :idAthlete AND ac.date > CURRENT_DATE - INTERVAL '1 YEAR' - AND ac.athleteId = ath.idAthlete - GROUP BY mois"; + AND ac.athleteId = at.idAthlete + GROUP BY mois";*/ + + $query = "SELECT COUNT(ac.idActivite) AS nbActivite, EXTRACT(MONTH FROM ac.date) AS mois + FROM Athlete at + JOIN Activite ac ON ac.athleteId = at.idAthlete + WHERE at.idAthlete = :idAthlete + AND ac.date > CURRENT_DATE - INTERVAL 1 YEAR + GROUP BY mois"; $params = [ ':idAthlete' => $idAthlete,