From 8efdef38ee15fa5af333619a61404b40e26368f9 Mon Sep 17 00:00:00 2001 From: SASSU Thomas <thomas.sassu5@etu.univ-lorraine.fr> Date: Wed, 11 Mar 2020 10:20:54 +0100 Subject: [PATCH] requete TD3b 1 --- GamePedia/php/Script_TD3b.php | 40 ++++++++++++++ .../src/controleurs/ControleurScript.php | 55 ++++++++++++++++++- 2 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 GamePedia/php/Script_TD3b.php diff --git a/GamePedia/php/Script_TD3b.php b/GamePedia/php/Script_TD3b.php new file mode 100644 index 0000000..9f1a50b --- /dev/null +++ b/GamePedia/php/Script_TD3b.php @@ -0,0 +1,40 @@ +<?php + +require_once dirname (__DIR__) . '/vendor/autoload.php'; +session_start(); + +use \Slim\Slim as Slim; +use Illuminate\Database\Capsule\Manager as DB; +use \gp\controleurs\ControleurPrincipal as ControleurPrincipal; +use \gp\controleurs\ControleurScript as ControleurScript; + +$db = new DB(); +$db->addConnection(parse_ini_file('../conf/conf.ini')); + +$db->setAsGlobal(); +$db->bootEloquent(); + +echo ("<!DOCTYPE html> +<html> + <body> + <div> + <h1> Script TD2 </h1> + <h2> Consignes : </h2> + <p> Pour chaque requête, mettre le paramètre dans l'url ?requete='Numero de la requete'</p> + </div>"); +if(isset($_GET['requete']) && $_GET['requete']>0 && $_GET['requete']<=5) { + echo "<div><center>"; + $nb = $_GET['requete']; + $c = new ControleurScript(); + $c->setLog(true); + $function = 'td3_q'. $nb .'b'; + $res = $c->$function(); + foreach ($res as $item){ + echo "<p>$item->name</p>"; + } + echo "</center></div>"; + echo "<div>"; + echo $c->getLog(); + echo "</div>"; +} +echo ("</body> </html>"); \ No newline at end of file diff --git a/GamePedia/src/controleurs/ControleurScript.php b/GamePedia/src/controleurs/ControleurScript.php index 83e18b0..aa13f1e 100644 --- a/GamePedia/src/controleurs/ControleurScript.php +++ b/GamePedia/src/controleurs/ControleurScript.php @@ -2,8 +2,7 @@ namespace gp\controleurs; - - +use Illuminate\Database\Capsule\Manager as DB; use gp\modeles\Game_rating; use gp\modeles\Genre; use gp\modeles\Platform; @@ -221,4 +220,56 @@ class ControleurScript private function nameDeckByGame($id){ return Game::where('id','=',$id)->first()->characters(); } +/*------------------------------------------------------------------- + * TD3 PART II + * ------------------------------------------------------------------ + */ + public function setLog($bool){ + if($bool) DB::connection()->enableQueryLog(); + else DB::connection()->disableQueryLog(); + } + + public function getLog(){ + $res = '<center><h2>Log</h2></center>'; + $log = DB::connection()->getQueryLog(); + foreach ($log as $line){ + $res = $res . "<div> <p>----------------------------------------------------------------------------------------------------------</p>"; + $res = $res . "<p> - Requete sql : " . $line['query'] . " : </p>"; + $res = $res . "<div><p>   | - Parametres : </p>"; + foreach ($line['bindings'] as $bind){ + $res = $res . "<p>     - $bind</p>"; + } + $res = $res . "</div> <p>   | - Temps d'execution : " . $line['time'] . "</p>"; + $res = $res . "<p>----------------------------------------------------------------------------------------------------------</p></div>"; + } + return $res; + } + + public function td3_q1b(){ + return Game::where('name','like','%Mario%')->get(); + } + + public function td3_q2b(){ + return Game::where('id', '=', 12342)->first()->characters()->get(); + } + + public function td3_q3b(){ + $res = null; + $characters = $this->td3_q1b()->characters()->get(); + foreach ($characters as $character){ + $first = $character->games()->min('original_release_date')->first; + if($first != null && str_contains(strtolower($first->name),'mario')) + $res[] = $character; + } + return $res; + } + + public function td3_q4b(){ + $characters = $this->td3_q1b()->characters()->get(); + return $characters; + } + + public function td3_q5b(){ + return Company::where('name','like', '%Sony%')->get()->games(); + } } \ No newline at end of file -- GitLab