correction de bugs + ajout de fonctionnalités(ajout de démonstrations, vérification lors de l'ajout)

master
Mehdi 5 years ago
parent c02fb4bed1
commit 90d006f958

@ -1,10 +1,6 @@
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
* Description of OracleDb
@ -16,8 +12,8 @@ class OracleDb {
private $conn;
function __construct() {
$this->conn = oci_connect('u_prems', '123456', 'localhost/orcl');
//$this->conn = oci_connect('meelaichao', 'meelaichao', 'kirov:1521/kirov');
//$this->conn = oci_connect('u_prems', '123456', 'localhost/orcl');
$this->conn = oci_connect('meelaichao', 'meelaichao', 'kirov:1521/kirov');
//$this->createRandomTables();
}

@ -10,8 +10,8 @@ class SqliteDb extends SQLite3
$odb = new OracleDb();
$this->conn = $odb->getConn();
if($o == 'n')
$this->open('Traitement/test.db');
else $this->open('test.db');
$this->open('Traitement/test2.db');
else $this->open('test2.db');
/*$this->createLogin();
$this->createTable();
$this->createDemonstration();
@ -25,10 +25,10 @@ class SqliteDb extends SQLite3
$this->exec('CREATE TABLE Correct ( bddConcernee STRING,numTp NUMBER, numquestion NUMBER,question STRING, reponse STRING,points NUMBER,aleatoire CHAR)');
$this->exec('DROP TABLE FunctionCorrect');
$this->exec('CREATE TABLE FunctionCorrect (bddConcernee STRING,numTp NUMBER, numquestion NUMBER, question STRING, reponse STRING, type STRING, fonctionCorrect STRING,testUser STRING)');
$this->exec('CREATE TABLE FunctionCorrect (bddConcernee STRING,numTp NUMBER, numquestion NUMBER, question STRING, reponse STRING, fonctionCorrect STRING,testUser STRING, points NUMBER)');
$this->exec('DROP TABLE TriggerCorrect');
$this->exec('CREATE TABLE TriggerCorrect ( bddConcernee STRING,numTp NUMBER, numquestion NUMBER,question STRING, reponse STRING, type STRING, fonctionCorrect STRING,testUser STRING)');
$this->exec('CREATE TABLE TriggerCorrect ( bddConcernee STRING,numTp NUMBER, numquestion NUMBER,question STRING, reponse STRING,fonctionCorrect STRING,testUser STRING)');
$this->exec('DROP TABLE Type');
$this->exec('CREATE TABLE Type ( numTp NUMBER,numQuestion NUMBER,type STRING)');
@ -87,12 +87,13 @@ class SqliteDb extends SQLite3
$fonctionCorrect = 'CREATE OR REPLACE FUNCTION fpointsmarques(date_match IN VARCHAR2, joueur IN VARCHAR2 ) RETURN NUMBER IS nbPoints NUMBER ; BEGIN SELECT points INTO nbPoints FROM STATS WHERE datematch = date_match AND prenomnoms=joueur; RETURN nbPoints; END;' ;
$reponse = 'SELECT fpointsmarques(\''.$dateRandom.'\', \''.$joueurRandom.'\') FROM DUAL';
$testU = 'SELECT pointsmarques(\''.$dateRandom.'\', \''.$joueurRandom.'\') FROM DUAL' ;
$points =1;
$q = "INSERT INTO FunctionCorrect VALUES ('NBA',2,5,'Ecrire une fonction pointsmarques qui détermine pour une date de match et un joueur donnés quelle est le nombre de points marqués par ce joueur', ?,?,?,? )";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$reponse);
$stmt->bindParam(2,$type);
$stmt->bindParam(3,$fonctionCorrect);
$stmt->bindParam(4,$testU);
$stmt->bindParam(2,$fonctionCorrect);
$stmt->bindParam(3,$testU);
$stmt->bindParam(4,$points);
$stmt->execute();
/* //Question 9
@ -201,33 +202,85 @@ class SqliteDb extends SQLite3
$dateRandom = $listeJoueurArray['DATEMATCH'][$rand_keys];
}
function ajouterRequete($contexte,$tp,$num,$consigne,$requete){
function ajouterRequete($contexte,$tp,$numQuestion,$consigne,$requete,$points){
if($this->verificationExistenceQuestion($tp, $numQuestion)) return false;
$qt = "INSERT INTO Type VALUES(?,?,'query')";
$prp=$this->prepare($qt);
$prp->bindParam(1, $num);
$prp->bindParam(2, $tp);
$prp->bindParam(1, $tp);
$prp->bindParam(2, $numQuestion);
$prp->execute();
$q = "INSERT INTO Correct VALUES (?,?,?,?,? ,1,'o')";
$q = "INSERT INTO Correct VALUES (?,?,?,?,? ,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$contexte);
$stmt->bindParam(2,$tp);
$stmt->bindParam(3,$num);
$stmt->bindParam(3,$numQuestion);
$stmt->bindParam(4,$consigne);
$stmt->bindParam(5,$requete);
$stmt->bindParam(6,$points);
$stmt->bindParam(7,$contexte);
$stmt->execute();
return true;
}
function ajouterFonction($contexte,$tp,$numQuestion,$consigne,$requete,$fonction,$requeteUser,$points){
if($this->verificationExistenceQuestion($tp, $numQuestion)) return false;
$qt = "INSERT INTO Type VALUES(?,?,'functionCorrect')";
$prp=$this->prepare($qt);
$prp->bindParam(1, $tp);
$prp->bindParam(2, $numQuestion);
$prp->execute();
$q = "INSERT INTO FunctionCorrect VALUES (?,?,?,?,?,?,? ,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$contexte);
$stmt->bindParam(2,$tp);
$stmt->bindParam(3,$numQuestion);
$stmt->bindParam(4,$consigne);
$stmt->bindParam(5,$requete);
$stmt->bindParam(6,$fonction);
$stmt->bindParam(7,$requeteUser);
$stmt->bindParam(8,$points);
$stmt->execute();
return true;
}
function verificationExistenceQuestion($tp,$numQuestion){
$q = "SELECT count(*) FROM Type WHERE numTp = ? AND numQuestion = ? ";
$prp=$this->prepare($q);
$prp->bindParam(1, $tp);
$prp->bindParam(2, $numQuestion);
$result = $prp->execute();
$row = $result->fetchArray();
if($row['count(*)'] == 0) return false;
return true;
}
function ajouterDemonstration($contexte,$chapitre,$num,$intitule,$requete){
if($this->verificationExistenceDemo($chapitre, $num)) return false;
$q = "INSERT INTO Demonstration VALUES (?,?,?,?,?)";
$stmt = $this->prepare($q);
$stmt->bindParam(1,$contexte);
$stmt->bindParam(2,$chapitre);
$stmt->bindParam(3,$num);
$stmt->bindParam(4,$intitule);
$stmt->bindParam(5,$requete);
$stmt->bindParam(5,$requete);
$stmt->execute();
return true;
}
function verificationExistenceDemo($chapitre,$numDemo){
$q = "SELECT count(*) FROM Demonstration WHERE chapitre = ? AND numDemo = ? ";
$prp=$this->prepare($q);
$prp->bindParam(1, $chapitre);
$prp->bindParam(2, $numDemo);
$result = $prp->execute();
$row = $result->fetchArray();
if($row['count(*)'] == 0) return false;
return true;
}
function supprimerRequete($numQuestion,$numTp){
@ -244,5 +297,18 @@ class SqliteDb extends SQLite3
$prp->execute();
}
function supprimerFonction($numQuestion,$numTp){
$qt = "DELETE FROM Type WHERE numTp=? AND numQuestion=? ";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numTp);
$prp->bindParam(2, $numQuestion);
$prp->execute();
$qt = "DELETE FROM FunctionCorrect WHERE numTp=? AND numQuestion=? ";
$prp=$this->prepare($qt);
$prp->bindParam(1, $numTp);
$prp->bindParam(2, $numQuestion);
$prp->execute();
}
}

@ -23,7 +23,7 @@ class QuestionsGateway {
public function afficherDemonstrations() {
$i = 0;
$query = 'SELECT * FROM Demonstration';
$query = 'SELECT * FROM Demonstration ORDER BY numDemo ASC';
$query = $this->db->prepare($query);
$result = $query->execute();
//$resultats = $this->db->query('SELECT found_rows()');

@ -3,7 +3,7 @@ session_start();
require_once('../BDD/SqliteDb.php');
require_once('../BDD/OracleDb.php');
header('Content-type: text/plain');
$db = new SqliteDb();
$db = new SqliteDb('o');
$n = new OracleDb();
//$conn = oci_connect('u_prems', '123456','localhost/orcl');

@ -1,14 +1,41 @@
<?php
require_once('../BDD/SqliteDb.php');
require_once('controleur/Controleur.php');
require_once('../controleur/Controleur.php');
$db = new SqliteDb();
$db = new SqliteDb('o');
$db->ajouterDemonstration($_GET['bdd'],$_GET['tp'],$_GET['num'],$_GET['consigne'], $_GET['reponse']);
if (empty($_GET['chapitre']) || empty($_GET['bdd']) || empty($_GET['numDemo']) || empty($_GET['description']) || empty($_GET['reponse']) ) {
echo '<strong>ERREUR : Veuillez remplir tous les champs </strong>';
}
else if(!is_numeric($_GET['chapitre']))
echo '<strong>ERREUR : une valeur non numérique à été détectée dans le champ \'Chapitre n° :\' </strong>';
else if(!is_numeric($_GET['numDemo']))
echo '<strong>ERREUR : une valeur non numérique à été détectée dans le champ \'Numéro de démonstration :\' </strong>';
else {
if(isset($_GET['modif'])){
if ($_GET["type"] == 'fonction')
$db->supprimerFonction ($_GET['num'], $_GET['tp']);
else if ($_GET["type"] == 'requete')
$db->supprimerRequete($_GET['num'], $_GET['tp']);
}
$isAdd = $db->ajouterDemonstration($_GET['bdd'],$_GET['chapitre'],$_GET['numDemo'],$_GET['description'], $_GET['reponse']);
if(!$isAdd){
echo '<strong>ERREUR : la combinaison (numéro de chapitre, numéro de démonstration) existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT Démonstration avec succès</strong>';
}
//require_once('index.php');
header("Location: index.php");
//header("Location: ../index.php");

@ -1,19 +1,71 @@
<?php
require_once('../BDD/SqliteDb.php');
require_once('controleur/Controleur.php');
require_once('../controleur/Controleur.php');
$db = new SqliteDb();
$db = new SqliteDb('o');
if(isset($_GET['modif'])){
$db->supprimerRequete($_GET['num'], $_GET['tp']);
if (empty($_GET['tp']) || empty($_GET['bdd']) || empty($_GET['num']) || empty($_GET['consigne']) || empty($_GET['reponse']) || empty($_GET['points']) || empty($_GET['aleatoire']) || empty($_GET['type'])) {
echo '<strong>ERREUR : Veuillez remplir tous les champs </strong>';
}
else if(!is_numeric($_GET['tp']))
echo '<strong>ERREUR : une valeur non numérique à été détectée dans le champ \'Numéro de question :\' </strong>';
else if(!is_numeric($_GET['num']))
echo '<strong>ERREUR : une valeur non numérique à été détectée dans le champ \'TP n° :\' </strong>';
if ($_GET["type"] == 'requete'){
$db->ajouterRequete($_GET['bdd'],$_GET['tp'],$_GET['num'],$_GET['consigne'], $_GET['reponse']);
}
else {
if(isset($_GET['modif'])){
if ($_GET["type"] == 'fonction')
$db->supprimerFonction ($_GET['num'], $_GET['tp']);
else if ($_GET["type"] == 'requete')
$db->supprimerRequete($_GET['num'], $_GET['tp']);
}
if ($_GET["type"] == 'requete'){
$isAdd = $db->ajouterRequete($_GET['bdd'],$_GET['tp'],$_GET['num'],$_GET['consigne'], $_GET['reponse'],$_GET['points']);
if(!$isAdd){
echo '<strong>ERREUR : la combinaison (numéro de tp, numéro de question) existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT Requete avec succès</strong>';
}
else if ($_GET["type"] == 'fonction'){
if(empty($_GET['fonction']))
echo 'ERREUR : Veuillez remplir tous les champs ';
else {
if(isset($_GET['modif'])){
$reponse = $_GET['reponse'];
$re = '/^\s*SELECT\s*([a-z0-9]*)/i';
preg_match($re, $reponse, $matches, PREG_OFFSET_CAPTURE);
$string = 'f'.$matches[1][0];
$freponse = str_replace($matches[1][0],$string, $reponse);
$fonction = $_GET['fonction'];
$re = '/^\s*CREATE OR REPLACE FUNCTION\s*([a-z0-9]*)/i';
preg_match($re, $fonction, $matches2, PREG_OFFSET_CAPTURE);
$string2 = 'f'.$matches2[1][0];
$ffonction = str_replace($matches2[1][0],$string2, $fonction);
}
else {
$freponse = $reponse;
$ffonction = $fonction;
}
$isAdd = $db->ajouterFonction($_GET['bdd'],$_GET['tp'],$_GET['num'],$_GET['consigne'], $freponse,$ffonction,$reponse,$_GET['points']);
if(!$isAdd){
echo '<strong>ERREUR : la combinaison (numéro de tp, numéro de question) existe déjà dans la bdd</strong>';
}
else echo '<strong>AJOUT Fonction avec succès</strong>';
}
}
}
//require_once('index.php');
header("Location: index.php");
//header("Location: ../index.php");

@ -15,7 +15,7 @@ $conn = $n->getConn();
$_SESSION['fi'] = array();
$cmpt = 0;
$numQuestion = 0;
$numDemo = 0;
header("Cache-Control: no cache");
@ -23,15 +23,15 @@ header("Cache-Control: no cache");
/*$numQuestion++;
$ic = "$numQuestion";*/
$numQuestion = $_GET['numQuestion'];
$numTp = $_GET['numTp'];
$_SESSION['fi'][$numQuestion] = $textbox;
$numDemo = $_GET['numQuestion'];
$numChapitre = $_GET['numTp'];
$_SESSION['fi'][$numDemo] = $textbox;
$UserQuery = oci_parse($conn, $textbox);
$reponseUser = oci_execute($UserQuery);
$typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
$typeQuery->bindParam(1, $numQuestion);
$typeQuery->bindParam(2, $numTp);
$typeQuery->bindParam(1, $numDemo);
$typeQuery->bindParam(2, $numChapitre);
$resultType = $typeQuery->execute();
$typeRow = $resultType->fetchArray();
$err = 0;
@ -43,8 +43,8 @@ header("Cache-Control: no cache");
// <editor-fold desc="vérification avec la vraie BDD">
$sqliteQuery = $db->prepare('SELECT reponse FROM Correct WHERE numquestion= ? AND numTp= ? ');
$sqliteQuery->bindParam(1, $numQuestion);
$sqliteQuery->bindParam(2, $numTp);
$sqliteQuery->bindParam(1, $numDemo);
$sqliteQuery->bindParam(2, $numChapitre);
$result = $sqliteQuery->execute();
$sqliteRow = $result->fetchArray();
@ -77,8 +77,8 @@ header("Cache-Control: no cache");
// </editor-fold>
$aleatoireQuery = $db->prepare('SELECT aleatoire FROM Correct WHERE numQuestion = ? AND numTp= ?');
$aleatoireQuery->bindParam(1, $numQuestion);
$aleatoireQuery->bindParam(2, $numTp);
$aleatoireQuery->bindParam(1, $numDemo);
$aleatoireQuery->bindParam(2, $numChapitre);
$resultAleatoire = $aleatoireQuery->execute();
$aleatoireRow = $resultAleatoire->fetchArray();
if($aleatoireRow['aleatoire'] == 'o'){
@ -135,26 +135,26 @@ header("Cache-Control: no cache");
}
// <editor-fold desc="Résultat">
if($err == 0 && $verif==1){
echo "<strong>La réponse à la question " .$numQuestion. " est JUSTE ! \n</strong>";
echo "<strong>La réponse à la question " .$numDemo. " est JUSTE ! \n</strong>";
$cmpt++;
}
else echo "<strong>La réponse à la question " .$numQuestion. " est FAUSSE ! \n</strong>";
else echo "<strong>La réponse à la question " .$numDemo. " est FAUSSE ! \n</strong>";
//</editor-fold>
}
//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, $numQuestion);
$sqliteQuery->bindParam(2, $numTp);
$sqliteQuery->bindParam(1, $numDemo);
$sqliteQuery->bindParam(2, $numChapitre);
$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, $numQuestion);
$sqliteQuery->bindParam(2, $numTp);
$sqliteQuery->bindParam(1, $numDemo);
$sqliteQuery->bindParam(2, $numChapitre);
$result = $sqliteQuery->execute();
$sqliteRow = $result->fetchArray();
@ -172,18 +172,18 @@ header("Cache-Control: no cache");
}
if($err == 0 ){
echo "La réponse à la question " .$numQuestion. " est JUSTE ! \n";
echo "La réponse à la question " .$numDemo. " est JUSTE ! \n";
$cmpt++;
}
else echo "La réponse à la question " .$numQuestion. " est FAUSSE ! \n";
else echo "La réponse à la question " .$numDemo. " est FAUSSE ! \n";
}
//si la question attend un CREATE FUNCTION
else{
$fonctionQuery = $db->prepare('SELECT * FROM FunctionCorrect WHERE numquestion= ? AND numTp= ? ');
$fonctionQuery->bindParam(1, $numQuestion);
$fonctionQuery->bindParam(2, $numTp);
$fonctionQuery->bindParam(1, $numDemo);
$fonctionQuery->bindParam(2, $numChapitre);
$result = $fonctionQuery->execute();
$fonctionRow = $result->fetchArray();
@ -240,8 +240,8 @@ header("Cache-Control: no cache");
$txt = str_replace('JOUEUR', 'randomjoueur', $txt);
}
$UserQueryRandom = oci_parse($conn, $txt);
$reponseUserRandom = oci_execute($UserQueryRandom);
$UserFonctionRandom = oci_parse($conn, $txt);
$reponseUserRandom = oci_execute($UserFonctionRandom);
//echo 'bbbb'.$txt;
$creationFonctionRandom = oci_parse($conn, $nv);
$creatFRandom = oci_execute($creationFonctionRandom);
@ -278,10 +278,10 @@ header("Cache-Control: no cache");
// </editor-fold>
if($err == 0 && $verif==1 ){
echo "La réponse à la question " .$numQuestion. " est JUSTE ! \n";
echo "La réponse à la question " .$numDemo. " est JUSTE ! \n";
$cmpt++;
}
else echo "La réponse à la question " .$numQuestion. " est FAUSSE ! \n";
else echo "La réponse à la question " .$numDemo. " est FAUSSE ! \n";
}

@ -3,7 +3,7 @@
session_start();
require_once('../BDD/SqliteDb.php');
require_once('../BDD/OracleDb.php');
$db = new SqliteDb();
$db = new SqliteDb('o');
$oracleDb = new OracleDb();
$conn = $oracleDb->getConn();

@ -2,55 +2,129 @@
<link rel="stylesheet" href="css/VueAdmin.css">
<form style="border:1px solid #ccc" method="GET" action="AjoutQuestion.php">
<div class="container">
<?php require_once('../BDD/SqliteDb.php');
require_once('../BDD/OracleDb.php');
$db = new SqliteDb();
$stmt = $db->prepare('SELECT question,reponse FROM Correct WHERE numQuestion= ? AND numTp = ?');
$db = new SqliteDb('o');
$typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
$typeQuery->bindParam(1, $_GET['numQuestion']);
$typeQuery->bindParam(2, $_GET['numTp']);
$resultType = $typeQuery->execute();
$typeRow = $resultType->fetchArray();
if($typeRow['type']== 'query')
$stmt = $db->prepare('SELECT question,reponse,points FROM Correct WHERE numQuestion= ? AND numTp = ?');
else if($typeRow['type']== 'functionCorrect')
$stmt = $db->prepare('SELECT question,reponse,fonctionCorrect,points FROM FunctionCorrect WHERE numQuestion= ? AND numTp = ?');
$stmt->bindParam(1, $_GET['numQuestion']);
$stmt->bindParam(2, $_GET['numTp']);
$resultQuestion = $stmt->execute();
$questionRow = $resultQuestion->fetchArray();
echo 'AAAAAAAAAAAAAAAA'.$_GET['numTp'].$questionRow['reponse'];
?>
<h1>Ajouter une question</h1>
<form style="border:1px solid #ccc" method="GET" >
<div class="container">
<h1>Modifier une question</h1>
<hr>
<label><b>TP n° : </b></label>
<input type="text" placeholder="Numéro du TP" name="tp" value="<?php echo $_GET['numTp']; ?>" required>
<input type="text" placeholder="Numéro du TP" id="tp" value="<?php echo $_GET['numTp']; ?>" required>
<label><b>Numéro de question : </b></label>
<input type="text" placeholder="Saisir le numéro de question..." name="num" value="<?php echo $_GET['numQuestion']; ?>" required>
<input type="text" placeholder="Saisir le numéro de question..." id="num" value="<?php echo $_GET['numQuestion']; ?>" required>
<label><b>Barème : </b></label>
<input type="text" placeholder="Barème..." name="points" required>
<input type="text" placeholder="Barème..." id="points" value="<?php echo $questionRow['points']; ?>" required>
<label><b>Consigne : </b></label>
<input type="text" placeholder="Ecrire la consigne..." name="consigne" value="<?php echo $questionRow['question']; ?>" required>
<input type="text" placeholder="Ecrire la consigne..." id="consigne" value="<?php echo $questionRow['question']; ?>" required>
<label><b>Réponse : </b></label>
<input type="text" placeholder="SELECT ..." name="reponse" value="<?php echo $questionRow['reponse']; ?>" required>
<input type="text" placeholder="SELECT ..." id="reponse" value="<?php echo $questionRow['reponse']; ?>" required>
<label> <b>Choisir le type de la question : </b><br/>
<input type="radio" name="type" value="requete" style="margin-bottom:15px" checked> requête simple
<input type="radio" name="type" value="fonction" style="margin-bottom:15px"> fonction
<input type="radio" name="type" value="requete" style="margin-bottom:15px" <?php if($typeRow['type']== 'query') echo 'checked'; ?>> requête simple
<input type="radio" name="type" value="fonction" id="btn-fonction" style="margin-bottom:15px" <?php if($typeRow['type']== 'functionCorrect') echo 'checked'; ?>> fonction
</label><br/>
<div id='show-me' style='display:none'>
<label ><b>Fonction : </b></label>
<input type="text" placeholder="CREATE OR REPLACE FUNCTION ..." id="fonction" value="<?php if(isset($questionRow['fonctionCorrect'])) echo $questionRow['fonctionCorrect']; ?> " required>
</div>
<label><b>Verification avec BDD aléatoire? </b><br/>
<input type="radio" name="aleatoire" value="o" style="margin-bottom:15px"> oui
<input type="radio" name="aleatoire" value="o" style="margin-bottom:15px" > oui
<input type="radio" name="aleatoire" value="n" style="margin-bottom:15px" checked> non
</label><br/>
<label><b>Base de données conçernée </b><br/>
<input type="radio" name="bdd" value="o" style="margin-bottom:15px" checked> NBA
<input type="radio" name="bdd" value="NBA" style="margin-bottom:15px" checked> NBA
</label>
<input type="hidden" name="modif" value="modif" >
<input type="hidden" id="modif" value="modif" >
<div class="clearfix">
<button type="submit" class="btnvalider"> Valider</button>
<input type="button" value="Modifier" onclick="SubmitModifierQuestion()" />
</div>
</div>
</form>
<div id="erreur">
</div>
<input type="button" value="Afficher les Questions" onclick="AfficherQuestions()">
<script>
$(document).ready(function() {
$('input[type="radio"]').click(function() {
if($(this).attr('id') == 'btn-fonction') {
$('#show-me').show();
}
else {
$('#show-me').hide();
}
});
if ($("#btn-fonction").prop("checked")) {
$('#show-me').show();
}
});
function SubmitModifierQuestion() {
//document.write($('#demo'+numQuestion).val());
var tp = $('#tp').val() ;
var num = $('#num').val() ;
var points = $('#points').val() ;
var consigne = $('#consigne').val() ;
var reponse = $('#reponse').val() ;
var type = $("input[name='type']:checked").val();
var aleatoire= $("input[name='aleatoire']:checked").val();
var bdd = $("input[name='bdd']:checked").val();
var fonction = $('#fonction').val() ;
var modif = $('#modif').val();
$.get("Traitement/AjoutQuestion.php", { modif: modif, tp: tp,num: num,points: points,consigne: consigne,reponse: reponse,type: type,aleatoire: aleatoire,bdd: bdd, fonction : fonction},
function(data) {
$('#erreur').html(data);
//$('#demoForm')[0].reset();
});
}
function AfficherQuestions(){
location.reload();
}
</script>

@ -4,64 +4,89 @@ require_once('../BDD/SqliteDb.php');
$db = new SqliteDb('o');
$numQuestion = $_GET['numQuestion'];
$numTp = $_GET['numTp'];
$numQuestionPrec = $numQuestion-1;
$numDemo = $_GET['numQuestion'];
$numChapitre = $_GET['numTp'];
$numDemoPrec = $numDemo-1;
$test = 999;
$Correct = 'Correct';
$function = 'functionCorrect';
if($numQuestion!=1){
if($numDemo!=1){
$typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
$typeQuery->bindParam(1, $numQuestion);
$typeQuery->bindParam(2, $numTp);
$typeQuery->bindParam(1, $numDemo);
$typeQuery->bindParam(2, $numChapitre);
$resultType = $typeQuery->execute();
$typeRow = $resultType->fetchArray();
$typeQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion = ? AND numTp= ?');
$typeQuery->bindParam(1, $numQuestionPrec);
$typeQuery->bindParam(2, $numTp);
$typeQuery->bindParam(1, $numDemoPrec);
$typeQuery->bindParam(2, $numChapitre);
$resultType = $typeQuery->execute();
$type2Row = $resultType->fetchArray();
//----------
if($typeRow['type'] == 'query'){
$table = 'Correct';
$type = 'query';
}
else{
$table = 'FunctionCorrect';
$type = 'functionCorrect';
}
else $table = 'FunctionCorrect';
$sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');
$sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');
$sqliteQuery->bindParam(1, $test);
$sqliteQuery->bindParam(2, $numQuestion);
$sqliteQuery->bindParam(3, $numTp);
$sqliteQuery->bindParam(2, $numDemo);
$sqliteQuery->bindParam(3, $numChapitre);
$result = $sqliteQuery->execute();
//---------
if($type2Row['type'] == 'query'){
$table2 = 'Correct';
$type2 = 'query';
}
else{
$table2 = 'FunctionCorrect';
$type2 = 'functionCorrect';
}
else $table2 = 'FunctionCorrect';
$sqliteQuery = $db->prepare('UPDATE '.$table2.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');
$sqliteQuery->bindParam(1, $numQuestion);
$sqliteQuery->bindParam(2, $numQuestionPrec);
$sqliteQuery->bindParam(3, $numTp);
$sqliteQuery->bindParam(1, $numDemo);
$sqliteQuery->bindParam(2, $numDemoPrec);
$sqliteQuery->bindParam(3, $numChapitre);
$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);
$resulti = $sqliteQuery->execute();
//---------
$sqliteQuery = $db->prepare('UPDATE '.$table.' SET numQuestion=? WHERE numQuestion=? AND numTp=?');
$sqliteQuery->bindParam(1, $numQuestionPrec);
$sqliteQuery->bindParam(1, $numDemoPrec);
$sqliteQuery->bindParam(2, $test);
$sqliteQuery->bindParam(3, $numTp);
$sqliteQuery->bindParam(3, $numChapitre);
$resultp = $sqliteQuery->execute();
////
$sqliteQuery = $db->prepare('UPDATE Type SET numQuestion=? WHERE numQuestion=? AND numTp=?');
$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);
@ -77,7 +102,7 @@ if($numQuestion!=1){
$sqliteQuery->bindParam(1, $numQuestionPrec);
$sqliteQuery->bindParam(2, $test);
$sqliteQuery->bindParam(3, $numTp);
$resultp = $sqliteQuery->execute();
$resultp = $sqliteQuery->execute();*/
}

@ -0,0 +1,40 @@
<?php
require_once('../BDD/SqliteDb.php');
$db = new SqliteDb('o');
$numDemo = $_GET['numDemo'];
$numChapitre = $_GET['numChapitre'];
$numDemoPrec = $numDemo-1;
$test = 999;
if($numDemo!=1){
$sqliteQuery = $db->prepare('UPDATE Demonstration SET numDemo=? WHERE numDemo=? AND chapitre=?');
$sqliteQuery->bindParam(1, $test);
$sqliteQuery->bindParam(2, $numDemo);
$sqliteQuery->bindParam(3, $numChapitre);
$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);
$resulti = $sqliteQuery->execute();
$sqliteQuery = $db->prepare('UPDATE Demonstration SET numDemo=? WHERE numDemo=? AND chapitre=?');
$sqliteQuery->bindParam(1, $numDemoPrec);
$sqliteQuery->bindParam(2, $test);
$sqliteQuery->bindParam(3, $numChapitre);
$resultp = $sqliteQuery->execute();
}
//header("Location: index.php");

@ -2,7 +2,7 @@
require_once('../BDD/SqliteDb.php');
$db = new SqliteDb();
$db = new SqliteDb('o');
$sqliteQuery = $db->prepare('SELECT type FROM Type WHERE numQuestion=? AND numTp = ?');
@ -22,4 +22,9 @@ $db = new SqliteDb();
$sqliteQueryF->bindParam(1, $_GET['numQuestion']);
$sqliteQueryF->bindParam(2, $_GET['numTp']);
$result = $sqliteQueryF->execute();
}
}
$sqliteQuery = $db->prepare('DELETE FROM Type WHERE numquestion= ? AND numTp=? ');
$sqliteQuery->bindParam(1, $_GET['numQuestion']);
$sqliteQuery->bindParam(2, $_GET['numTp']);
$result = $sqliteQuery->execute();

Binary file not shown.

@ -35,11 +35,17 @@ class Controleur {
$this->afficherDemonstrations();
break;
case 'Générer Base de données aléatoire':
$this->resetRandomBdd();
break;
case 'ok' :
//$this->verificationConnexion();
$this->afficherDemonstrations();
break;
case 'Reintiliser les demonstrations' :
$this->resetDemonstrations();
break;
case 'Afficher les QCM' :
$this->afficherQCM();
@ -62,6 +68,19 @@ class Controleur {
//$this->afficherQuestions();
}
function resetRandomBdd(){
require_once('BDD/OracleDb.php');
$oraDb = new OracleDb();
$oraDb->createRandomTables();
$this->afficherQuestions();
}
function resetDemonstrations(){
$db = new SqliteDb();
$db->createDemonstration();
$this->afficherDemonstrations();
}
function afficherQuestions(){
global $rep,$vues,$css;

@ -4,12 +4,13 @@
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/VueAdmin.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/metier/Question.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Modification.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/SqliteDb.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/vues/VuePrincipale.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/AjoutQuestion.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Correcteur.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/AjoutQuestion.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/BDD/SqliteDb.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/Suppression.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/Ordre.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/Modification.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/BDD/OracleDb.php</file>
<file>file:/C:/xampp/htdocs/BddCorrect/Traitement/Correcteur.php</file>
</group>
</open-files>
</project-private>

@ -1,45 +1,101 @@
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../css/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="../css/VueAdmin.css">
</head>
<body>
<form style="border:1px solid #ccc" method="GET" action="../Traitement/AjoutQuestion.php">
<div class="container">
<h1>Ajouter une question</h1>
<hr>
<label><b>TP n° : </b></label>
<input type="text" placeholder="Numéro du TP" id="tp" name='tp' required>
<label><b>Numéro de question : </b></label>
<input type="text" placeholder="Saisir le numéro de question..." id="num" required>
<label><b>Barème : </b></label>
<input type="text" placeholder="Barème..." id="points" required>
<label><b>Consigne : </b></label>
<input type="text" placeholder="Ecrire la consigne..." id="consigne" required>
<label><b>Réponse : </b></label>
<input type="text" placeholder="SELECT ..." id="reponse" required>
<label> <b>Choisir le type de la question : </b><br/>
<input type="radio" name="type" value="requete" style="margin-bottom:15px" checked> requête simple
<input type="radio" name="type" value="fonction" id="btn-fonction" style="margin-bottom:15px"> fonction
</label><br/>
<div id='show-me' style='display:none'>
<label ><b>Fonction : </b></label>
<input type="text" placeholder="CREATE OR REPLACE FUNCTION ..." id="fonction" required>
</div>
<label><b>Verification avec BDD aléatoire? </b><br/>
<input type="radio" name="aleatoire" value="o" style="margin-bottom:15px" checked> oui
<input type="radio" name="aleatoire" value="n" style="margin-bottom:15px"> non
</label><br/>
<label><b>Base de données conçernée </b><br/>
<input type="radio" name="bdd" value="NBA" style="margin-bottom:15px" checked> NBA
</label>
<div >
<input type="button" value="Ajouter" onclick="SubmitAjoutQuestion()" />
</div>
</div>
</form>
<div id="erreur">
</div>
</body>
<script>
$(document).ready(function() {
$('input[type="radio"]').click(function() {
if($(this).attr('id') == 'btn-fonction') {
$('#show-me').show();
}
else {
$('#show-me').hide();
}
});
});
function SubmitAjoutQuestion() {
//document.write($('#demo'+numQuestion).val());
var tp = $('#tp').val() ;
var num = $('#num').val() ;
var points = $('#points').val() ;
var consigne = $('#consigne').val() ;
var reponse = $('#reponse').val() ;
var type = $("input[name='type']:checked").val();
var aleatoire= $("input[name='aleatoire']:checked").val();
var bdd = $("input[name='bdd']:checked").val();
var fonction = $('#fonction').val() ;
$.get("../Traitement/AjoutQuestion.php", { tp: tp,num: num,points: points,consigne: consigne,reponse: reponse,type: type,aleatoire: aleatoire,bdd: bdd, fonction : fonction},
function(data) {
$('#erreur').html(data);
//$('#demoForm')[0].reset();
});
}
<link rel="stylesheet" href="../css/VueAdmin.css">
<form style="border:1px solid #ccc" method="GET" action="../Traitement/AjoutQuestion.php">
<div class="container">
<h1>Ajouter une question</h1>
<hr>
<label><b>TP n° : </b></label>
<input type="text" placeholder="Numéro du TP" name="tp" required>
<label><b>Numéro de question : </b></label>
<input type="text" placeholder="Saisir le numéro de question..." name="num" required>
<label><b>Barème : </b></label>
<input type="text" placeholder="Barème..." name="points" required>
<label><b>Consigne : </b></label>
<input type="text" placeholder="Ecrire la consigne..." name="consigne" required>
<label><b>Réponse : </b></label>
<input type="text" placeholder="SELECT ..." name="reponse" required>
<label> <b>Choisir le type de la question : </b><br/>
<input type="radio" name="type" value="requete" style="margin-bottom:15px"> requête simple
<input type="radio" name="type" value="fonction" style="margin-bottom:15px"> fonction
</label><br/>
<label><b>Verification avec BDD aléatoire? </b><br/>
<input type="radio" name="aleatoire" value="o" style="margin-bottom:15px"> oui
<input type="radio" name="aleatoire" value="n" style="margin-bottom:15px"> non
</label><br/>
<label><b>Base de données conçernée </b><br/>
<input type="radio" name="bdd" value="o" style="margin-bottom:15px"> NBA
</label>
<div class="clearfix">
<button type="submit" class="btnvalider"> Valider</button>
</div>
</div>
</form>
</script>
</html>

@ -1,33 +1,67 @@
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../css/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="../css/VueAdmin.css">
</head>
<body>
<form style="border:1px solid #ccc" method="GET" action="../Traitement/AjoutQuestion.php">
<div class="container">
<link rel="stylesheet" href="../css/VueAdmin.css">
<form style="border:1px solid #ccc" method="GET" action="../Traitement/AjoutDemonstration.php">
<div class="container">
<h1>Ajouter une question</h1>
<hr>
<label><b>Chapitre n° : </b></label>
<input type="text" placeholder="Numéro du chapitre" id="chapitre" name='chapitre' required>
<label><b>Numéro de démonstration : </b></label>
<input type="text" placeholder="Saisir le numéro de la démonstration..." id="numDemo" required>
<h1>Ajouter une démonstration</h1>
<hr>
<label><b>Chapitre : </b></label>
<input type="text" placeholder="Numéro du chapitre" name="tp" required>
<label><b>Description : </b></label>
<input type="text" placeholder="Ecrire l'intitulé de la démonstration..." id="description" required>
<label><b>Numéro de démonstration : </b></label>
<input type="text" placeholder="Saisir le numéro de démonstration..." name="num" required>
<label><b>Intitulé : </b></label>
<input type="text" placeholder="Ecrire l'intitulé..." name="consigne" required>
<label><b>Réponse : </b></label>
<input type="text" placeholder="SELECT ..." id="reponse" required>
<label><b>Base de données conçernée </b><br/>
<input type="radio" name="bdd" value="NBA" style="margin-bottom:15px" checked> NBA
</label>
<label><b>Réponse : </b></label>
<input type="text" placeholder="SELECT ..." name="reponse" required>
<div >
<input type="button" value="Ajouter" onclick="SubmitAjoutDemo()" />
</div>
</div>
</form>
<div id="erreur">
</div>
</body>
<script>
<label><b>Base de données conçernée </b><br/>
<input type="radio" name="bdd" value="o" style="margin-bottom:15px" checked> NBA
</label>
function SubmitAjoutDemo() {
var chapitre = $('#chapitre').val() ;
var numDemo = $('#numDemo').val() ;
var description = $('#description').val() ;
var reponse = $('#reponse').val() ;
var bdd = $("input[name='bdd']:checked").val();
$.get("../Traitement/AjoutDemonstration.php", { chapitre: chapitre,numDemo: numDemo,description: description,reponse: reponse,bdd: bdd},
function(data) {
$('#erreur').html(data);
//$('#demoForm')[0].reset();
});
}
<div class="clearfix">
<button type="submit" class="btnvalider"> Valider</button>
</div>
</div>
</form>
</script>
</html>

@ -56,6 +56,8 @@
<textarea rows="5" cols="70" name="demo<?php echo $q->getNumQuestion(); ?>" id="demo<?php echo $q->getNumQuestion(); ?>" >
<?php echo $q->getReponse(); ?>
</textarea>
<input class="monterDemonstration" type="button" value="Monter" onclick="MonterDemonstration(<?php echo $q->getNumQuestion(); ?>,<?php echo $q->getNumTp(); ?>)" ></p>
<p><input class="submitDemoData" type="button" value="Exécuter" onclick="SubmitDemoData(<?php echo $q->getNumQuestion(); ?>);" ></p>
<div id="results<?php echo $q->getNumQuestion(); ?>">
@ -68,9 +70,8 @@
</div>
</div>
</section>
<form method="get">
<input type="submit" name="test" id="test" value="Générer Base de données aléatoire" /><br/>
<input type="submit" name="regenererDemo" id="regenererDemo" value="Reintiliser les demonstrations" onclick="resetDemo()" /><br/>
<form method="get" >
<input type="submit" name="action" id="regenererDemo" value="Reintiliser les demonstrations" /><br/>
</form>
<a href="vues/VueAjoutDemo.php"><button>Ajouter Une Démonstration</button></a>
<a href="vues/VueLibre.php"><button>Creation table</button></a>
@ -78,46 +79,36 @@
<form method="get" role="form">
<input type="submit" name="action" value="Afficher les questions" /><br/>
<input type="submit" name="action" value="Afficher les QCM" ><br/>
<input type="submit" name="action" id="afficher-demo" value="Afficher les demonstrations" style='display:none'>
</form>
<?php
if(array_key_exists('test',$_GET)){
$oraDb = new OracleDb;
}
if(array_key_exists('regenererDemo',$_GET)){
$message = "wrong answer";
echo "<script type='text/javascript'>alert('$message');</script>";
$db = new SqliteDb();
$db->createDemonstration();
$URL="index.php";
echo '<META HTTP-EQUIV="refresh" content="0;URL=' . $URL . '">';
}
?>
<div id="erreur">
</div>
<script>
function resetDemo(){
alert("ok");
<?php $db = new SqliteDb();
$db->createDemonstration();
?>
}
function SubmitDemoData(numQuestion) {
var l= [];
//document.write($('#demo'+numQuestion).val());
var txt = $('#demo'+numQuestion).val() ;
/*$('textarea[name^="demo"]').each(function() {
l.push($(this).val());
});*/
$.get("Traitement/AffichageDemo.php", { textbox: txt},
function(data) {
$('#results'+numQuestion).html(data);
//$('#demoForm')[0].reset();
});
}
function MonterDemonstration(numDemo, numChapitre) {
if(numDemo > 1){
$.get("Traitement/OrdreDemo.php", { numDemo : numDemo, numChapitre : numChapitre },
function(data) {
//$('#questionsForm')[0].reset();
//$('#erreur').html(data);
$("#afficher-demo").trigger("click");
//window.location.replace("index.php");
});
}
}
</script>
<!-- Footer -->
<footer class="py-5 bg-dark">

@ -74,7 +74,7 @@
<form method="get" class="frm">
<input type="submit" name="test" id="test" value="Générer Base de données aléatoire" />
<input type="submit" name="action" id="test" value="Générer Base de données aléatoire" />
<input type="submit" name="regenerer" id="test" value="Réintiliser les questions" /><br/>
</form>
<a href="vues/VueAdmin.php"><button>Ajouter Une Question</button></a>
@ -87,12 +87,7 @@
<?php
if(array_key_exists('test',$_GET)){
$oraDb = new OracleDb();
$oraDb->createRandomTables();
$URL="index.php";
echo '<META HTTP-EQUIV="refresh" content="0;URL=' . $URL . '">';
}
if(array_key_exists('regenerer',$_GET)){
$db = new SqliteDb();
@ -156,6 +151,7 @@
}
function ModifierQuestion(numQuestion, numTp) {
$.get("Traitement/Modification.php", { numQuestion : numQuestion, numTp : numTp },
function(data) {
$('#vuep').empty();
@ -163,7 +159,7 @@
//$('#questionsForm')[0].reset();
//location.reload();
});
}
function MonterQuestion(numQuestion, numTp) {
@ -172,11 +168,19 @@
function(data) {
//$('#questionsForm')[0].reset();
window.location.replace("index.php");
});
}
}
window.addEventListener('scroll',function() {
localStorage.setItem('scrollPosition',window.scrollY);
},false);
window.addEventListener('load',function() {
if(localStorage.getItem('scrollPosition') !== null)
window.scrollTo(0, localStorage.getItem('scrollPosition'));
},false);
</script>
<!-- Footer -->
<footer class="py-5 bg-dark">

@ -79,7 +79,6 @@
<a href="vues/VueAdmin.php"><button>Ajouter Une Question</button></a>
<a href="vues/VueLibre.php"><button>Creation table</button></a>
<a href="vues/VueSupression.php"><button>vue suppression</button></a>
<form method="get" role="form">
<input type="submit" name="action" value="Afficher les demonstrations" ><br/>

Loading…
Cancel
Save