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>&nbsp&nbsp | - Parametres : </p>";
+           foreach ($line['bindings'] as $bind){
+              $res = $res . "<p>&nbsp&nbsp&nbsp&nbsp  - $bind</p>";
+            }
+            $res = $res . "</div> <p>&nbsp&nbsp | - 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