From b840cf12abf4bef341eea5b635c45cccc85ecce7 Mon Sep 17 00:00:00 2001 From: Mehdi Date: Thu, 4 Jun 2020 16:10:04 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20requ=C3=AAtes=20oracle=20dans=20sq?= =?UTF-8?q?lite=20+=20comparaison=20de=20leurs=20resultats=20avec=20celui?= =?UTF-8?q?=20de=20l'utilisateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BddCorrect/Correcteur.php | 76 +++++++++++++++++++++++++++++++------- BddCorrect/SqliteDb.php | 32 ++++++++++++++-- BddCorrect/fileus.txt | 0 BddCorrect/test.db | Bin 12288 -> 12288 bytes 4 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 BddCorrect/fileus.txt diff --git a/BddCorrect/Correcteur.php b/BddCorrect/Correcteur.php index 70a5224..9d1375e 100644 --- a/BddCorrect/Correcteur.php +++ b/BddCorrect/Correcteur.php @@ -15,28 +15,76 @@ else { echo 'conn SUCCCESSSS'; }*/ $cmpt = 0; -$i = 0; +$numQuestion = 0; foreach ($_POST['textbox'] as $textbox) { -$i++; - $oracleQuery = oci_parse($conn, $textbox); - $reponseUser = oci_execute($oracleQuery); + $numQuestion++; + $UserQuery = oci_parse($conn, $textbox); + $reponseUser = oci_execute($UserQuery); $sqliteQuery = $db->prepare('SELECT reponse FROM Correct WHERE rowid= ? '); - $sqliteQuery->bindParam(1, $i); + $sqliteQuery->bindParam(1, $numQuestion); $result = $sqliteQuery->execute(); + $sqliteRow = $result->fetchArray(); + $vraiReponse = oci_parse($conn, $sqliteRow['reponse']); + $enAttente = oci_execute($vraiReponse); + /*$spool = $db->prepare('SPOOL ? '); + $spool->bindParam(1, 'jytdj'); + $result = $spol->execute(); + $fileUser = fopen("fileus.txt","w");*/ + $err = 0; + $verif =0; - while(($oracleRow = oci_fetch_array($oracleQuery, OCI_BOTH)) && ($sqliteRow = $result->fetchArray())){ - echo 'oracle = ' . $oracleRow[0] . ' sqliet = ' . $sqliteRow[0] . '\n'; - if ($sqliteRow['reponse'] == $oracleRow[0]) { - echo "La réponse à la question n° " . $i . " est JUSTE\n"; - $cmpt++; - } else { - echo 'La réponse à la question n° ' . $i . " est FAUSSE\n\n"; + while( ($oracleRow = oci_fetch_array($UserQuery, OCI_NUM)) && $err == 0 ){ + $verif = 1; + $vraiReponseRow = oci_fetch_array($vraiReponse,OCI_NUM ); + /*echo oci_num_rows($UserQuery) . " lignes insérées.
\n"; + echo oci_num_rows($vraiReponse) . " lignes insérées sqlite.
\n";*/ + if(oci_num_rows($UserQuery) != oci_num_rows($vraiReponse)){ + $err=-3; + break; } - + if(sizeof($oracleRow) == sizeof($vraiReponseRow)){ + /*foreach($vraiReponseRow as $key => $value) + { + echo $key." has the value " . $value ."\n"; + } + foreach($oracleRow as $key => $value) + { + echo $key." BLASE the value " . $value ."\n"; + }*/ + for($i=0 ; $i< sizeof($vraiReponseRow)-1 ; $i++){ + if($oracleRow[$i] != $vraiReponseRow[$i]){ + $err = -1; + break; + } + } + } + else { + $err = -2; + break; + } + /*for($i=0 ; $i< sizeof($vraiReponseRow)-2 ; $i++){ + echo $vraiReponseRow[$i]; + fwrite($fileUser,$vraiReponseRow[$i] . "\t"); + } + fwrite($fileUser, "\n");*/ + /* echo 'vrai ' . $vraiReponseRow[0] . ' || ora = ' . $oracleRow[0] . "\n"; + if ($vraiReponseRow[0] == $oracleRow[0]) { + echo "La réponse à la question n° " . $i . " est JUSTE\n"; + $cmpt++; + } else { + echo 'La réponse à la question n° ' . $i . " est FAUSSE\n\n"; + }*/ + } + if($err == 0 && $verif==1){ + echo "La réponse à la question " .$numQuestion. " est JUSTE ! \n"; + $cmpt++; } + else echo "La réponse à la question " .$numQuestion. " est FAUSSE ! \n"; + } -echo 'Résultat ' . $cmpt . '/' . $i; +echo 'Résultat : ' . $cmpt . '/' . $numQuestion; + diff --git a/BddCorrect/SqliteDb.php b/BddCorrect/SqliteDb.php index 14f0478..3c5ec69 100644 --- a/BddCorrect/SqliteDb.php +++ b/BddCorrect/SqliteDb.php @@ -9,11 +9,37 @@ class SqliteDb extends SQLite3 } function createTable(){ + //Création De La Table $this->exec('DROP TABLE Correct'); $this->exec('CREATE TABLE Correct ( question STRING, reponse STRING)'); - $this->exec("INSERT INTO Correct VALUES ('Trouver le nombre de matchs joués par Kevin Durant', '68')"); - //$this->exec("INSERT INTO Correct VALUES ('Ceci est la question 2 ', 'r1')"); - $this->exec("INSERT INTO Correct VALUES ('Lister le(s) joueur(s) ayant joué le plus de match pendant la saison ', 'r2')"); + + //Question 1 + $test = 'SELECT count(*) FROM stats WHERE prenomnoms=\'Kevin Durant\' '; + $q = "INSERT INTO Correct VALUES ('Trouver le nombre de matchs joués par Kevin Durant', ? )"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$test); + $stmt->execute(); + + //Question 2 + $test = ' SELECT prenomnoms,datematch,points,equipeadverse FROM stats WHERE points = (SELECT max(points) FROM stats)'; + $q = "INSERT INTO Correct VALUES ('Lister le(s) joueur(s) ayant marqué le plus de points dans la saison en indiquant son nom, la date du match, le nombre de points, l équipe adverse et le nombre de points marqués ', ? )"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$test); + $stmt->execute(); + + //Question 3 + $test = ' SELECT prenomnoms, COUNT(*) FROM stats GROUP BY prenomnoms HAVING count(*) = (SELECT MAX(c) FROM (SELECT COUNT(*) AS c FROM stats GROUP BY prenomnoms))'; + $q = "INSERT INTO Correct VALUES ('Lister le(s) joueur(s) ayant joué le plus de match pendant la saison', ? )"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$test); + $stmt->execute(); + + //Question 5 + $test = 'SELECT * FROM equipe WHERE nom= \'Hawks\' '; + $q = "INSERT INTO Correct VALUES ('Déterminer pour Kevin Durant pour le match du 30-oct-17 quelle est l équipe qui joue à domicile', ? )"; + $stmt = $this->prepare($q); + $stmt->bindParam(1,$test); + $stmt->execute(); } } diff --git a/BddCorrect/fileus.txt b/BddCorrect/fileus.txt new file mode 100644 index 0000000..e69de29 diff --git a/BddCorrect/test.db b/BddCorrect/test.db index 1e87caf21a5f58d697e7ad2a0d60c18f9f7d0a67..fa45fd437622f0a0e27a2cdc7aaaf56b76609896 100644 GIT binary patch literal 12288 zcmeI2%}(1u5PLckz3!T@6hp2LV!}P6`GY-yE`+Uo%v=j*1EUb5r)Hisrt;ovNdbjwzUdi zSv6r>Y5g-D$k-)e4dHdL~{gAgM=4Wu3J}K8qao@CMK2+OXx3z2EnL~rm*XcbMyw+OB zh4Lk6!XV+=2pK`o>ptJ!SOmpm8EIawoe8GZ`mc!>Y5g-CY zfCvzQ|B%3Jwc>aOLIXYw41V^{R<20w%aZJFzIOMwRsS&)On=1*H6lO+hyW2F0z`la z5CI}U1c<2_U+ zWPb%3o9yVLZb0f+r_#BTryZd&A_#d?JGrw&Wixi11%%Frr>KKCOf&?e$YLG^nL1>k znb6r4Z?S8vIBtTEUWE3}-nQ3VaEd@c8)h_Yba(b%!rEInw}j2sE4&^CUnY^s>{p;! zy4z~KY5Jvuk!xi)Xg1)VO$8 OBN!ivmB!>@Z@?c#ms8yU delta 62 zcmZojXh@hKCB!7dz`(!^#7scU2t