From 0ac27fb95ca8c48f17dd46bc70745275c77becab Mon Sep 17 00:00:00 2001 From: Mehdi Date: Tue, 11 Aug 2020 12:47:16 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20de=20fonctionnalit=C3=A9s=20pour=20les?= =?UTF-8?q?=20demonstrations=20et=20les=20qcm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BddCorrect/BDD/SqliteDb.php | 46 +++++- BddCorrect/DAL/QuestionsGateway.php | 25 ++- BddCorrect/Traitement/AjoutQCM.php | 14 ++ BddCorrect/Traitement/Correcteur.php | 44 ++--- BddCorrect/Traitement/Ordre.php | 63 +++----- BddCorrect/Traitement/OrdreDemo.php | 27 ++-- BddCorrect/Traitement/Suppression.php | 198 +++++++++++++---------- BddCorrect/Traitement/test2.db | Bin 40960 -> 61440 bytes BddCorrect/config/config.php | 5 + BddCorrect/controleur/Controleur.php | 44 ++++- BddCorrect/css/VuePrincipale.css | 35 ---- BddCorrect/css/vueGestionTables.css | 46 ++++++ BddCorrect/demonstrations.txt | 2 + BddCorrect/nbproject/private/private.xml | 7 +- BddCorrect/questions.txt | 2 + BddCorrect/vues/VueAccueil.php | 14 +- BddCorrect/vues/VueAdmin.php | 91 +++++++++-- BddCorrect/vues/VueAjoutDemo.php | 78 +++++++-- BddCorrect/vues/VueDemonstration.php | 129 ++++++++++----- BddCorrect/vues/VueGestionTables.php | 28 ++++ BddCorrect/vues/VuePrincipale.php | 31 ++-- BddCorrect/vues/VueQCM.php | 60 ++----- BddCorrect/vues/vueAjoutQCM.php | 83 ++++++++++ 23 files changed, 731 insertions(+), 341 deletions(-) create mode 100644 BddCorrect/Traitement/AjoutQCM.php create mode 100644 BddCorrect/css/vueGestionTables.css create mode 100644 BddCorrect/demonstrations.txt create mode 100644 BddCorrect/questions.txt create mode 100644 BddCorrect/vues/VueGestionTables.php create mode 100644 BddCorrect/vues/vueAjoutQCM.php diff --git a/BddCorrect/BDD/SqliteDb.php b/BddCorrect/BDD/SqliteDb.php index 9cb7307..80012c9 100644 --- a/BddCorrect/BDD/SqliteDb.php +++ b/BddCorrect/BDD/SqliteDb.php @@ -136,7 +136,7 @@ class SqliteDb extends SQLite3 $this->exec("INSERT INTO Demonstration VALUES('NBA',1,1,'Exemple de requête pour selectionner les 2 premières lignes de la table JOUEUR','SELECT * FROM JOUEUR WHERE rownum<3')"); $this->exec("INSERT INTO Demonstration VALUES('NBA',1,2,'Exemple de requête pour selectionner les 2 premières lignes de la table STATS','SELECT * FROM STATS WHERE rownum<3')"); - + $this->exec("INSERT INTO Demonstration VALUES('NBA',2,1,'Exemple de requête pour selectionner les 2 premières lignes de la table GAME','SELECT * FROM GAME WHERE rownum<3')"); } function createQCM(){ @@ -245,6 +245,50 @@ class SqliteDb extends SQLite3 return true; } + function ajouterQCM($numQuestion,$consigne,$choix1,$choix2,$choix3,$numReponse){ + if($this->verificationExistenceQCM($numQuestion)) return false; + $qt = "INSERT INTO QcmQuestion VALUES(?,?)"; + $prp=$this->prepare($qt); + $prp->bindParam(1, $numQuestion); + $prp->bindParam(2, $consigne); + $prp->execute(); + + $q = "INSERT INTO QcmReponse VALUES (1,?,?)"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$choix1); + $stmt->bindParam(2,$numQuestion); + $stmt->execute(); + + $q = "INSERT INTO QcmReponse VALUES (2,?,?)"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$choix2); + $stmt->bindParam(2,$numQuestion); + $stmt->execute(); + + $q = "INSERT INTO QcmReponse VALUES (3,?,?)"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$choix3); + $stmt->bindParam(2,$numQuestion); + $stmt->execute(); + + $qt = "INSERT INTO QcmCorrection VALUES(?,?)"; + $prp=$this->prepare($qt); + $prp->bindParam(1, $numQuestion); + $prp->bindParam(2, $numReponse); + $prp->execute(); + + return true; + } + + function verificationExistenceQCM($numQuestion){ + $q = "SELECT count(*) FROM QcmQuestion WHERE numQuestion = ? "; + $prp=$this->prepare($q); + $prp->bindParam(1, $numQuestion); + $result = $prp->execute(); + $row = $result->fetchArray(); + if($row['count(*)'] == 0) return false; + return true; + } function verificationExistenceQuestion($tp,$numQuestion){ $q = "SELECT count(*) FROM Type WHERE numTp = ? AND numQuestion = ? "; diff --git a/BddCorrect/DAL/QuestionsGateway.php b/BddCorrect/DAL/QuestionsGateway.php index 360261c..1d8eea6 100644 --- a/BddCorrect/DAL/QuestionsGateway.php +++ b/BddCorrect/DAL/QuestionsGateway.php @@ -36,15 +36,26 @@ class QuestionsGateway { } public function afficherDemonstrations() { - $i = 0; - $query = 'SELECT * FROM Demonstration ORDER BY numDemo ASC'; + $tabQuestions=array(); + $query = 'SELECT chapitre FROM Demonstration'; $query = $this->db->prepare($query); $result = $query->execute(); - //$resultats = $this->db->query('SELECT found_rows()'); - while($q = $result->fetchArray()){ - $i= $i+1; - $tabDemo[] = new Question(1,$q['numDemo'],$q['description'],$q['reponse']); + //$nbTpRow = $result->fetchArray(SQLITE3_NUM); + $i = 0; + while ($chapitre = $result->fetchArray(SQLITE3_NUM)){ + $questionQuery = 'SELECT chapitre,numDemo,description,reponse FROM Demonstration WHERE chapitre = ? ORDER BY numDemo'; + $questionQuery = $this->db->prepare($questionQuery); + $questionQuery->bindParam(1, $chapitre[0]); + $questionResult = $questionQuery->execute(); + while($q = $questionResult->fetchArray()){ + $tabQuestions[] = new Question($q['chapitre'],$q['numDemo'],$q['description'],$q['reponse']); + } + $tabChapitre['chapitre'.$chapitre[0]] = $tabQuestions ; + unset($tabQuestions); + $tabQuestions = array(); } - return $tabDemo; + + //die("
".print_r($tabTp)."ajouterQCM($_GET['numQuestion'],$_GET['consigne'],$_GET['choix1'],$_GET['choix2'],$_GET['choix3'], $_GET['reponse']);
+    if(!$isAdd){
+            echo 'ERREUR : le numéro de question existe déjà dans la bdd';
+        }
+    else echo 'AJOUT QCM avec succès';
+
diff --git a/BddCorrect/Traitement/Correcteur.php b/BddCorrect/Traitement/Correcteur.php
index 4b52184..8b3e600 100644
--- a/BddCorrect/Traitement/Correcteur.php
+++ b/BddCorrect/Traitement/Correcteur.php
@@ -15,7 +15,7 @@ $conn = $n->getConn();
 
 $_SESSION['fi'] = array();
 $cmpt = 0;
-$numDemo = 0;
+$numQuestion = 0;
 header("Cache-Control: no cache");
 
 
@@ -23,15 +23,15 @@ header("Cache-Control: no cache");
    /*$numQuestion++;
     $ic = "$numQuestion";*/
     
-   $numDemo = $_GET['numQuestion'];
-   $numChapitre = $_GET['numTp'];
-    $_SESSION['fi'][$numDemo] = $textbox;
+   $numQuestion = $_GET['numQuestion'];
+   $numTp = $_GET['numTp'];
+    $_SESSION['fi'][$numQuestion] = $textbox;
     $UserQuery = oci_parse($conn, $textbox);
     $reponseUser = oci_execute($UserQuery);
     
     $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
-    $typeQuery->bindParam(1, $numDemo);
-    $typeQuery->bindParam(2, $numChapitre);
+    $typeQuery->bindParam(1, $numQuestion);
+    $typeQuery->bindParam(2, $numTp);
     $resultType = $typeQuery->execute();
     $typeRow = $resultType->fetchArray();
     $err = 0;
@@ -43,8 +43,8 @@ header("Cache-Control: no cache");
         // 
         
         $sqliteQuery = $db->prepare('SELECT reponse FROM Correct WHERE numquestion= ?  AND numTp= ? ');
-        $sqliteQuery->bindParam(1, $numDemo);
-        $sqliteQuery->bindParam(2, $numChapitre);
+        $sqliteQuery->bindParam(1, $numQuestion);
+        $sqliteQuery->bindParam(2, $numTp);
         
         $result = $sqliteQuery->execute();
         $sqliteRow = $result->fetchArray();
@@ -77,8 +77,8 @@ header("Cache-Control: no cache");
         // 
 
         $aleatoireQuery = $db->prepare('SELECT aleatoire FROM Correct WHERE numQuestion = ?  AND numTp= ?');
-        $aleatoireQuery->bindParam(1, $numDemo);
-        $aleatoireQuery->bindParam(2, $numChapitre);
+        $aleatoireQuery->bindParam(1, $numQuestion);
+        $aleatoireQuery->bindParam(2, $numTp);
         $resultAleatoire = $aleatoireQuery->execute();
         $aleatoireRow = $resultAleatoire->fetchArray();
         if($aleatoireRow['aleatoire'] == 'o'){
@@ -135,26 +135,26 @@ header("Cache-Control: no cache");
         }
         // 
         if($err == 0 && $verif==1){
-            echo "La réponse à la question " .$numDemo. " est JUSTE ! \n";
+            echo "La réponse à la question " .$numQuestion. " est JUSTE ! \n";
             $cmpt++;
         }   
-        else echo "La réponse à la question " .$numDemo. " est FAUSSE ! \n";
+        else echo "La réponse à la question " .$numQuestion. " est FAUSSE ! \n";
         //
     }
     //si la question attend une modification
     else if($typeRow['type'] == 'tablemodification'){
         
         $sqliteQuery = $db->prepare('SELECT reponse FROM Correct WHERE numquestion= ?  AND numTp= ? ');
-        $sqliteQuery->bindParam(1, $numDemo);
-        $sqliteQuery->bindParam(2, $numChapitre);
+        $sqliteQuery->bindParam(1, $numQuestion);
+        $sqliteQuery->bindParam(2, $numTp);
         $result = $sqliteQuery->execute();
         $sqliteRow = $result->fetchArray();
         $vraiReponse = oci_parse($conn, $sqliteRow['reponse']);
         $enAttente = oci_execute($vraiReponse); 
         
         $sqliteQuery = $db->prepare('SELECT fonctioncorrect FROM Correct WHERE numquestion= ?  AND numTp= ?');
-        $sqliteQuery->bindParam(1, $numDemo);
-        $sqliteQuery->bindParam(2, $numChapitre);
+        $sqliteQuery->bindParam(1, $numQuestion);
+        $sqliteQuery->bindParam(2, $numTp);
         $result = $sqliteQuery->execute();
         $sqliteRow = $result->fetchArray();
         
@@ -172,18 +172,18 @@ header("Cache-Control: no cache");
         }
         
         if($err == 0 ){
-            echo "La réponse à la question " .$numDemo. " est JUSTE ! \n";
+            echo "La réponse à la question " .$numQuestion. " est JUSTE ! \n";
             $cmpt++;
         }
-        else echo "La réponse à la question " .$numDemo. " est FAUSSE ! \n";
+        else echo "La réponse à la question " .$numQuestion. " est FAUSSE ! \n";
         
         
     }
     //si la question attend un CREATE FUNCTION
     else{
         $fonctionQuery = $db->prepare('SELECT * FROM FunctionCorrect WHERE numquestion= ?  AND numTp= ? ');
-        $fonctionQuery->bindParam(1, $numDemo);
-        $fonctionQuery->bindParam(2, $numChapitre);
+        $fonctionQuery->bindParam(1, $numQuestion);
+        $fonctionQuery->bindParam(2, $numTp);
         $result = $fonctionQuery->execute();
         $fonctionRow = $result->fetchArray();
         
@@ -278,10 +278,10 @@ header("Cache-Control: no cache");
         // 
         
         if($err == 0 && $verif==1 ){
-            echo "La réponse à la question " .$numDemo. " est JUSTE ! \n";
+            echo "La réponse à la question " .$numQuestion. " est JUSTE ! \n";
             $cmpt++;
         }
-        else echo "La réponse à la question " .$numDemo. " est FAUSSE ! \n";
+        else echo "La réponse à la question " .$numQuestion. " est FAUSSE ! \n";
     }
 
 
diff --git a/BddCorrect/Traitement/Ordre.php b/BddCorrect/Traitement/Ordre.php
index a0e9daa..734cc28 100644
--- a/BddCorrect/Traitement/Ordre.php
+++ b/BddCorrect/Traitement/Ordre.php
@@ -4,24 +4,31 @@ require_once('../BDD/SqliteDb.php');
 $db = new SqliteDb('o');
 
 
-$numDemo = $_GET['numQuestion'];
-   $numChapitre = $_GET['numTp'];
-$numDemoPrec = $numDemo-1;
+$numQuestion = $_GET['numQuestion'];
+$numTp = $_GET['numTp'];
+$numQuestionPrec = $numQuestion-1;
 $test = 999;
 
 $Correct = 'Correct';
 $function = 'functionCorrect';
-if($numDemo!=1){
+
+
+if(isset($_GET['des'])){
+    $numQuestion += 1;
+    $numQuestionPrec = $numQuestion-1;
+}
+
+if($numQuestion!=1){
     
     $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
-    $typeQuery->bindParam(1, $numDemo);
-    $typeQuery->bindParam(2, $numChapitre);
+    $typeQuery->bindParam(1, $numQuestion);
+    $typeQuery->bindParam(2, $numTp);
     $resultType = $typeQuery->execute();
     $typeRow = $resultType->fetchArray();
     
     $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
-    $typeQuery->bindParam(1, $numDemoPrec);
-    $typeQuery->bindParam(2, $numChapitre);
+    $typeQuery->bindParam(1, $numQuestionPrec);
+    $typeQuery->bindParam(2, $numTp);
     $resultType = $typeQuery->execute();
     $type2Row = $resultType->fetchArray();
     
@@ -40,8 +47,8 @@ if($numDemo!=1){
     
     $sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');   
     $sqliteQuery->bindParam(1, $test);
-    $sqliteQuery->bindParam(2, $numDemo);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(2, $numQuestion);
+    $sqliteQuery->bindParam(3, $numTp);
     $result = $sqliteQuery->execute();
     
     //---------
@@ -55,15 +62,15 @@ if($numDemo!=1){
     }
     
     $sqliteQuery = $db->prepare('UPDATE '.$table2.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');
-    $sqliteQuery->bindParam(1, $numDemo);
-    $sqliteQuery->bindParam(2, $numDemoPrec);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(1, $numQuestion);
+    $sqliteQuery->bindParam(2, $numQuestionPrec);
+    $sqliteQuery->bindParam(3, $numTp);
     $resulti = $sqliteQuery->execute();
     
     $sqliteQuery = $db->prepare('UPDATE Type SET type=? WHERE numQuestion=? AND numTp=?');
     $sqliteQuery->bindParam(1, $type2);
-    $sqliteQuery->bindParam(2, $numDemo);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(2, $numQuestion);
+    $sqliteQuery->bindParam(3, $numTp);
     $resulti = $sqliteQuery->execute();
      
    
@@ -71,38 +78,18 @@ if($numDemo!=1){
     
     $sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');
 
-    $sqliteQuery->bindParam(1, $numDemoPrec);
+    $sqliteQuery->bindParam(1, $numQuestionPrec);
     $sqliteQuery->bindParam(2, $test);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(3, $numTp);
     $resultp = $sqliteQuery->execute();
     
     $sqliteQuery = $db->prepare('UPDATE Type SET type=? WHERE numQuestion=? AND numTp=?');
     $sqliteQuery->bindParam(1, $type);
-    $sqliteQuery->bindParam(2, $numDemoPrec);
-    $sqliteQuery->bindParam(3, $numChapitre);
-    $resulti = $sqliteQuery->execute();
-    
-    
-    ////---------------------------------------------------------
-    
-    
-    /*$sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=?');
-    $sqliteQuery->bindParam(1, $test);
-    $sqliteQuery->bindParam(2, $numQuestion);
-    $sqliteQuery->bindParam(3, $numTp);
-    $result = $sqliteQuery->execute();
-    
-    $sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=?');
-    $sqliteQuery->bindParam(1, $numQuestion);
     $sqliteQuery->bindParam(2, $numQuestionPrec);
     $sqliteQuery->bindParam(3, $numTp);
     $resulti = $sqliteQuery->execute();
     
-    $sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=?');
-    $sqliteQuery->bindParam(1, $numQuestionPrec);
-    $sqliteQuery->bindParam(2, $test);
-    $sqliteQuery->bindParam(3, $numTp);
-    $resultp = $sqliteQuery->execute();*/
+
     
     
 }
diff --git a/BddCorrect/Traitement/OrdreDemo.php b/BddCorrect/Traitement/OrdreDemo.php
index 5127180..efd6cf5 100644
--- a/BddCorrect/Traitement/OrdreDemo.php
+++ b/BddCorrect/Traitement/OrdreDemo.php
@@ -4,31 +4,36 @@ require_once('../BDD/SqliteDb.php');
 $db = new SqliteDb('o');
 
 
-$numDemo = $_GET['numDemo'];
-$numChapitre = $_GET['numChapitre'];
-$numDemoPrec = $numDemo-1;
+$numQuestion = $_GET['numDemo'];
+$numTp = $_GET['numChapitre'];
+$numQuestionPrec = $numQuestion-1;
 $test = 999;
 
-if($numDemo!=1){
+if(isset($_GET['des'])){
+    $numQuestion += 1;
+    $numQuestionPrec = $numQuestion-1;
+}
+
+if($numQuestion!=1){
           
     $sqliteQuery = $db->prepare('UPDATE Demonstration SET numDemo=? WHERE numDemo=? AND chapitre=?');   
     $sqliteQuery->bindParam(1, $test);
-    $sqliteQuery->bindParam(2, $numDemo);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(2, $numQuestion);
+    $sqliteQuery->bindParam(3, $numTp);
     $result = $sqliteQuery->execute();
    
     
     $sqliteQuery = $db->prepare('UPDATE Demonstration SET numDemo=? WHERE numDemo=? AND chapitre=?');
-    $sqliteQuery->bindParam(1, $numDemo);
-    $sqliteQuery->bindParam(2, $numDemoPrec);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(1, $numQuestion);
+    $sqliteQuery->bindParam(2, $numQuestionPrec);
+    $sqliteQuery->bindParam(3, $numTp);
     $resulti = $sqliteQuery->execute();
 
     
     $sqliteQuery = $db->prepare('UPDATE Demonstration SET numDemo=? WHERE numDemo=? AND chapitre=?');
-    $sqliteQuery->bindParam(1, $numDemoPrec);
+    $sqliteQuery->bindParam(1, $numQuestionPrec);
     $sqliteQuery->bindParam(2, $test);
-    $sqliteQuery->bindParam(3, $numChapitre);
+    $sqliteQuery->bindParam(3, $numTp);
     $resultp = $sqliteQuery->execute();
     
     
diff --git a/BddCorrect/Traitement/Suppression.php b/BddCorrect/Traitement/Suppression.php
index 2ab3913..1b751e6 100644
--- a/BddCorrect/Traitement/Suppression.php
+++ b/BddCorrect/Traitement/Suppression.php
@@ -4,112 +4,140 @@
 require_once('../BDD/SqliteDb.php');
 $db = new SqliteDb('o');
         
-$numQuestionSuiv = $_GET['numQuestion']+1;
 
 
-
-
-$sqliteQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion=? AND numTp = ?');
-$sqliteQuery->bindParam(1, $_GET['numQuestion']);
-$sqliteQuery->bindParam(2, $_GET['numTp']);
-$result = $sqliteQuery->execute();
-$typeRow = $result->fetchArray();
-
-$sqliteQuery = $db->prepare('DELETE FROM Type WHERE numquestion= ? AND numTp=? ');
-$sqliteQuery->bindParam(1, $_GET['numQuestion']);
-$sqliteQuery->bindParam(2, $_GET['numTp']);
-$result = $sqliteQuery->execute();
-
-
-if($typeRow['type'] == 'query'){   
-    $sqliteQuery = $db->prepare('SELECT count(*) FROM (SELECT numQuestion FROM Correct WHERE numTp=? UNION SELECT numQuestion FROM FunctionCorrect WHERE numTp=?)');
-    $sqliteQuery->bindParam(1, $_GET['numTp']);
-    $sqliteQuery->bindParam(2, $_GET['numTp']);
+if(isset($_GET['type'])){
+    
+    $numDemoSuiv = $_GET['numDemo']+1;
+    
+    $sqliteQuery = $db->prepare('SELECT count(*) FROM Demonstration WHERE chapitre=?');
+    $sqliteQuery->bindParam(1, $_GET['numChapitre']);
     $result = $sqliteQuery->execute();
     $nbQuestionsRow =   $result->fetchArray();
     
-    $sqliteQuery = $db->prepare('DELETE FROM Correct WHERE numquestion= ? AND numTp=? ');
-    $sqliteQuery->bindParam(1, $_GET['numQuestion']);
-    $sqliteQuery->bindParam(2, $_GET['numTp']);
+    $sqliteQuery = $db->prepare('DELETE FROM Demonstration WHERE numDemo= ? AND chapitre=? ');
+    $sqliteQuery->bindParam(1, $_GET['numDemo']);
+    $sqliteQuery->bindParam(2, $_GET['numChapitre']);
     $result = $sqliteQuery->execute();
     
     
-    for( $iSuiv = $numQuestionSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
-        
-        $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
-        $typeQuery->bindParam(1, $iSuiv);
-        $typeQuery->bindParam(2, $_GET['numTp']);
-        $resultType = $typeQuery->execute();
-        $typeRow = $resultType->fetchArray();
-
-        if($typeRow['type'] == 'query'){
-            $table = 'Correct';
-            $type = 'query';
-        }
-        else{
-            $table = 'FunctionCorrect';
-            $type = 'functionCorrect';
-        }
-    
-        $sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
-        $sqliteQuery->bindParam(1, $j);
-        $sqliteQuery->bindParam(2, $iSuiv);
-        $sqliteQuery->bindParam(3, $_GET['numTp']);
-        $result = $sqliteQuery->execute();
-        
-        $sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
+    for( $iSuiv = $numDemoSuiv, $j=$_GET['numDemo'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){              
+        $sqliteQuery = $db->prepare('UPDATE Demonstration SET numDemo=? WHERE numDemo=? AND chapitre=? ');
         $sqliteQuery->bindParam(1, $j);
         $sqliteQuery->bindParam(2, $iSuiv);
-        $sqliteQuery->bindParam(3, $_GET['numTp']);
+        $sqliteQuery->bindParam(3, $_GET['numChapitre']);
         $result = $sqliteQuery->execute();
+        echo 'lol';
     }
 }
+
 else {
-    
-    $sqliteQuery = $db->prepare('SELECT count(*) FROM (SELECT numQuestion FROM Correct WHERE numTp=? UNION SELECT numQuestion FROM FunctionCorrect WHERE numTp=?)');
-    $sqliteQuery->bindParam(1, $_GET['numTp']);
+
+    $numQuestionSuiv = $_GET['numQuestion']+1;
+
+
+
+    $sqliteQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion=? AND numTp = ?');
+    $sqliteQuery->bindParam(1, $_GET['numQuestion']);
     $sqliteQuery->bindParam(2, $_GET['numTp']);
     $result = $sqliteQuery->execute();
-    $nbQuestionsRow =   $result->fetchArray();
-    
-    $sqliteQueryF = $db->prepare('DELETE FROM FunctionCorrect WHERE numquestion= ? AND numTp=?');
-    $sqliteQueryF->bindParam(1, $_GET['numQuestion']);
-    $sqliteQueryF->bindParam(2, $_GET['numTp']);
-    $result = $sqliteQueryF->execute();   
-    
+    $typeRow = $result->fetchArray();
 
-    
-    for( $iSuiv = $numQuestionSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
-        
-        $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
-        $typeQuery->bindParam(1, $numQuestionSuiv);
-        $typeQuery->bindParam(2, $_GET['numTp']);
-        $resultType = $typeQuery->execute();
-        $typeRow = $resultType->fetchArray();
+    $sqliteQuery = $db->prepare('DELETE FROM Type WHERE numquestion= ? AND numTp=? ');
+    $sqliteQuery->bindParam(1, $_GET['numQuestion']);
+    $sqliteQuery->bindParam(2, $_GET['numTp']);
+    $result = $sqliteQuery->execute();
 
-        
-        if($typeRow['type'] == 'query'){
-            $table = 'Correct';
-            $type = 'query';
-        }
-        else{
-            $table = 'FunctionCorrect';
-            $type = 'functionCorrect';
-        }
-    
-        $sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
-        $sqliteQuery->bindParam(1, $j);
-        $sqliteQuery->bindParam(2, $iSuiv);
-        $sqliteQuery->bindParam(3, $_GET['numTp']);
+
+    if($typeRow['type'] == 'query'){   
+        $sqliteQuery = $db->prepare('SELECT count(*) FROM (SELECT numQuestion FROM Correct WHERE numTp=? UNION SELECT numQuestion FROM FunctionCorrect WHERE numTp=?)');
+        $sqliteQuery->bindParam(1, $_GET['numTp']);
+        $sqliteQuery->bindParam(2, $_GET['numTp']);
         $result = $sqliteQuery->execute();
-        
-        $sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
-        $sqliteQuery->bindParam(1, $j);
-        $sqliteQuery->bindParam(2, $iSuiv);
-        $sqliteQuery->bindParam(3, $_GET['numTp']);
+        $nbQuestionsRow =   $result->fetchArray();
+
+        $sqliteQuery = $db->prepare('DELETE FROM Correct WHERE numquestion= ? AND numTp=? ');
+        $sqliteQuery->bindParam(1, $_GET['numQuestion']);
+        $sqliteQuery->bindParam(2, $_GET['numTp']);
         $result = $sqliteQuery->execute();
+
+
+        for( $iSuiv = $numQuestionSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
+
+            $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
+            $typeQuery->bindParam(1, $iSuiv);
+            $typeQuery->bindParam(2, $_GET['numTp']);
+            $resultType = $typeQuery->execute();
+            $typeRow = $resultType->fetchArray();
+
+            if($typeRow['type'] == 'query'){
+                $table = 'Correct';
+                $type = 'query';
+            }
+            else{
+                $table = 'FunctionCorrect';
+                $type = 'functionCorrect';
+            }
+
+            $sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
+            $sqliteQuery->bindParam(1, $j);
+            $sqliteQuery->bindParam(2, $iSuiv);
+            $sqliteQuery->bindParam(3, $_GET['numTp']);
+            $result = $sqliteQuery->execute();
+
+            $sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
+            $sqliteQuery->bindParam(1, $j);
+            $sqliteQuery->bindParam(2, $iSuiv);
+            $sqliteQuery->bindParam(3, $_GET['numTp']);
+            $result = $sqliteQuery->execute();
+        }
     }
-}
+    else {
+
+        $sqliteQuery = $db->prepare('SELECT count(*) FROM (SELECT numQuestion FROM Correct WHERE numTp=? UNION SELECT numQuestion FROM FunctionCorrect WHERE numTp=?)');
+        $sqliteQuery->bindParam(1, $_GET['numTp']);
+        $sqliteQuery->bindParam(2, $_GET['numTp']);
+        $result = $sqliteQuery->execute();
+        $nbQuestionsRow =   $result->fetchArray();
+
+        $sqliteQueryF = $db->prepare('DELETE FROM FunctionCorrect WHERE numquestion= ? AND numTp=?');
+        $sqliteQueryF->bindParam(1, $_GET['numQuestion']);
+        $sqliteQueryF->bindParam(2, $_GET['numTp']);
+        $result = $sqliteQueryF->execute();   
+
 
 
+        for( $iSuiv = $numQuestionSuiv, $j=$_GET['numQuestion'] ; $iSuiv <= $nbQuestionsRow['count(*)'] ; $iSuiv++ , $j++ ){
+
+            $typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
+            $typeQuery->bindParam(1, $numQuestionSuiv);
+            $typeQuery->bindParam(2, $_GET['numTp']);
+            $resultType = $typeQuery->execute();
+            $typeRow = $resultType->fetchArray();
+
+
+            if($typeRow['type'] == 'query'){
+                $table = 'Correct';
+                $type = 'query';
+            }
+            else{
+                $table = 'FunctionCorrect';
+                $type = 'functionCorrect';
+            }
+
+            $sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
+            $sqliteQuery->bindParam(1, $j);
+            $sqliteQuery->bindParam(2, $iSuiv);
+            $sqliteQuery->bindParam(3, $_GET['numTp']);
+            $result = $sqliteQuery->execute();
+
+            $sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=? ');
+            $sqliteQuery->bindParam(1, $j);
+            $sqliteQuery->bindParam(2, $iSuiv);
+            $sqliteQuery->bindParam(3, $_GET['numTp']);
+            $result = $sqliteQuery->execute();
+        }
+    }
+}// fin else type
+
 
diff --git a/BddCorrect/Traitement/test2.db b/BddCorrect/Traitement/test2.db
index 35d23d9ccfceeca1edba716e24d5673da00e658a..e05eb502e7bf1566ab28455fc8a8b351072c2ed4 100644
GIT binary patch
literal 61440
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 
+                    break;
             case 'Afficher les questions':
                     //require ($rep.$vues['vueLogin']);
                 $this->afficherQuestions(); 
@@ -41,12 +45,19 @@ class Controleur {
                
                 $this->Correction();
                 break;
+            case 'Demonstrations de cours' :
+                //$this->verificationConnexion();
+               
+                $this->afficherDemonstrations();
+                break;
             case 'Afficher les demonstrations' :
                 //$this->verificationConnexion();
                
                 $this->afficherDemonstrations();
                 break;
-            
+            case 'Ajouter une demonstration' : 
+                require ($rep.$vues['vueAjoutDemo']);
+                break;
             case 'Générer Base de données aléatoire':
                 $this->resetRandomBdd();
                 break;
@@ -59,14 +70,26 @@ class Controleur {
                 $this->resetDemonstrations();
                 break;
             
+            case 'Reintiliser les QCM' :
+                $this->resetQCM();
+                break;
             case 'Réintiliser les questions' :
                 $this->resetQuestions();
                 break;
             
-            case 'Afficher les QCM' :                
+            case 'QCM' :                
                 $this->afficherQCM();
                 break;
+            case 'Ajouter QCM' : 
+                require ($rep.$vues['vueAjoutQCM']);
+                break;
+            case 'Creation de table' :                
+                $this->afficherCreationTable();
+                break;
             
+            case 'Gestion de tables' :                
+                $this->afficherGestionTable();
+                break;
             default:
                 $dVueEreur[] ="Erreur d'appel php";           
                 require ($rep.$vues['erreur']);
@@ -85,6 +108,11 @@ class Controleur {
     }    
     
     
+    function resetQCM(){
+        $db = new SqliteDb();
+        $db->createQCM();
+        $this->afficherQCM();
+    }
     
     function resetQuestions(){
         $db = new SqliteDb();
@@ -155,5 +183,17 @@ class Controleur {
     function Correction(){
         require('Correcteur.php');
     }
+    
+    function afficherCreationTable(){
+                global $rep,$vues;
+
+        require ($rep.$vues['vueLibre']);
+    }
+    
+    function afficherGestionTable(){
+        global $rep,$vues;
+
+        require ($rep.$vues['vueGestion']);
+    }
 }
 
diff --git a/BddCorrect/css/VuePrincipale.css b/BddCorrect/css/VuePrincipale.css
index 60e9f87..ddc5ad1 100644
--- a/BddCorrect/css/VuePrincipale.css
+++ b/BddCorrect/css/VuePrincipale.css
@@ -8,42 +8,7 @@ and open the template in the editor.
     Author     : Mehdi
 */
 
-.frm{
-        
-    position:absolute;  
-    right: 0;       
-}
 
-.inp-reset{
-    background: #0082b5;
-    color: #fff;
-    border: 1px solid #eee;
-    border-radius: 20px;
-    box-shadow: 5px 5px 5px #eee;
-    text-shadow:none;           
-    width: 500px; 
-    margin-bottom: 5px;
-    display: block;
-    height: 30%;
-
-}
-
-.inp-reset:hover {
-    background: #d9534f;
-    color: #fff;
-    border: 1px solid #eee;footer{
-    position: relative;
-    left: 0;
-    bottom: 0;
-    width: 100%;
-    background-color: red;
-    color: white;
-    text-align: center;
-}
-    border-radius: 20px;
-    box-shadow: 5px 5px 5px #eee;
-    text-shadow:none;
-}
 
 footer{
     position: relative;
diff --git a/BddCorrect/css/vueGestionTables.css b/BddCorrect/css/vueGestionTables.css
new file mode 100644
index 0000000..5847d9a
--- /dev/null
+++ b/BddCorrect/css/vueGestionTables.css
@@ -0,0 +1,46 @@
+html,body {
+  height:100%;
+  width:100%;
+  margin:0;
+}
+body {
+  display:flex;
+}
+form {
+  margin:auto;/* nice thing of auto margin if display:flex; it center both horizontal and vertical :) */
+}
+
+.inp-reset{
+    background: #0082b5;
+    color: #fff;
+    border: 1px solid #eee;
+    border-radius: 20px;
+    box-shadow: 5px 5px 5px #eee;
+    text-shadow:none;           
+    width: 500px; 
+    margin-bottom: 5px;
+    display: block;
+    height: 30%;
+
+}
+
+.inp-reset:hover {
+    background: #d9534f;
+    color: #fff;
+    border: 1px solid #eee;
+     border-radius: 20px;
+    box-shadow: 5px 5px 5px #eee;
+    text-shadow:none;
+}
+
+footer{
+    position: relative;
+    left: 0;
+    bottom: 0;
+    width: 100%;
+    background-color: red;
+    color: white;
+    text-align: center;
+    height: 10px;
+}
+   
\ No newline at end of file
diff --git a/BddCorrect/demonstrations.txt b/BddCorrect/demonstrations.txt
new file mode 100644
index 0000000..7c04f14
--- /dev/null
+++ b/BddCorrect/demonstrations.txt
@@ -0,0 +1,2 @@
+NBA**1**3**5 premières lignes de la table EQUIPE** SELECT * FROM EQUIPE WHERE rownum<6
+NBA**1**4**5 premières lignes de la table GAME** SELECT * FROM GAME WHERE rownum<6
\ No newline at end of file
diff --git a/BddCorrect/nbproject/private/private.xml b/BddCorrect/nbproject/private/private.xml
index 6e2ea97..2b9ec28 100644
--- a/BddCorrect/nbproject/private/private.xml
+++ b/BddCorrect/nbproject/private/private.xml
@@ -3,10 +3,11 @@
     
     
         
-            file:/C:/xampp/htdocs/BddCorrect/css/VueAccueil.css
-            file:/C:/xampp/htdocs/BddCorrect/vues/VueAccueil.php
-            file:/C:/xampp/htdocs/BddCorrect/css/VuePrincipale.css
+            file:/C:/xampp/htdocs/BddCorrect/vues/VueAdmin.php
+            file:/C:/xampp/htdocs/BddCorrect/Traitement/AjoutQuestion.php
+            file:/C:/xampp/htdocs/BddCorrect/BDD/SqliteDb.php
             file:/C:/xampp/htdocs/BddCorrect/vues/VuePrincipale.php
+            file:/C:/xampp/htdocs/BddCorrect/Traitement/Correcteur.php
         
     
 
diff --git a/BddCorrect/questions.txt b/BddCorrect/questions.txt
new file mode 100644
index 0000000..5a7d20f
--- /dev/null
+++ b/BddCorrect/questions.txt
@@ -0,0 +1,2 @@
+requete**NBA**1**1**Lister les joueurs de la table Equipe**SELECT * FROM EQUIPE**10**o
+requete**NBA**1**2**Lister les joueurs de la table JOUEUR**SELECT * FROM JOUEUR**10**o
diff --git a/BddCorrect/vues/VueAccueil.php b/BddCorrect/vues/VueAccueil.php
index 9a5f7a3..e085d6c 100644
--- a/BddCorrect/vues/VueAccueil.php
+++ b/BddCorrect/vues/VueAccueil.php
@@ -28,22 +28,24 @@
 
 
             
-
-
-
+
+
+
+
+
- + - + + --> diff --git a/BddCorrect/vues/VueAdmin.php b/BddCorrect/vues/VueAdmin.php index 0b7aaba..f213a71 100644 --- a/BddCorrect/vues/VueAdmin.php +++ b/BddCorrect/vues/VueAdmin.php @@ -63,6 +63,9 @@
+ + + - - + + + -
+
@@ -34,7 +34,7 @@ NBA -
+
@@ -42,24 +42,74 @@
+ + + + + +
diff --git a/BddCorrect/vues/VueGestionTables.php b/BddCorrect/vues/VueGestionTables.php new file mode 100644 index 0000000..cd66154 --- /dev/null +++ b/BddCorrect/vues/VueGestionTables.php @@ -0,0 +1,28 @@ + + + + + + + + + + + + +
+ + + +
+
+ + + diff --git a/BddCorrect/vues/VuePrincipale.php b/BddCorrect/vues/VuePrincipale.php index 125f891..07da9a0 100644 --- a/BddCorrect/vues/VuePrincipale.php +++ b/BddCorrect/vues/VuePrincipale.php @@ -35,10 +35,7 @@
-
-

test

-

TEST

-
+
@@ -62,7 +59,8 @@

-

+ +

@@ -73,12 +71,7 @@
- - -
- - -
+
@@ -171,6 +164,7 @@ } function MonterQuestion(numQuestion, numTp) { + if(numQuestion > 1){ $.get("Traitement/Ordre.php", { numQuestion : numQuestion, numTp : numTp }, function(data) { @@ -182,6 +176,21 @@ } } + function DescendreQuestion(nbQuestions,numQuestion, numTp) { + //alert(nbQuestions); + + var des = 1; + if(numQuestion < nbQuestions){ + $.get("Traitement/Ordre.php", { des : des , numQuestion : numQuestion, numTp : numTp }, + function(data) { + + //$('#questionsForm')[0].reset(); + $('#inp-questions').trigger("click"); + //window.location.replace("index.php"); + }); + } + } + window.addEventListener('scroll',function() { localStorage.setItem('scrollPosition',window.scrollY); },false); diff --git a/BddCorrect/vues/VueQCM.php b/BddCorrect/vues/VueQCM.php index fa0ce85..6089c72 100644 --- a/BddCorrect/vues/VueQCM.php +++ b/BddCorrect/vues/VueQCM.php @@ -16,29 +16,11 @@ - +
-
-

test

-

TEST

-
+ d
@@ -47,8 +29,7 @@
-

TP 2

- +

TP 2

getNumQuestion(); ?>">

- - - - - + +
- - - +
+ +
-
-
+ +
- - -
-
-

IUT Clermont-Ferrand 2020

-
- -
- - - - - - - - - - diff --git a/BddCorrect/vues/vueAjoutQCM.php b/BddCorrect/vues/vueAjoutQCM.php new file mode 100644 index 0000000..5aa6aeb --- /dev/null +++ b/BddCorrect/vues/vueAjoutQCM.php @@ -0,0 +1,83 @@ + + + + + + + + + + + +
+
+ + +

Ajouter une question(QCM)

+
+ + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+ +
+ +
+ +
+ + + + + +