diff --git a/bdd.php b/bdd.php index 63f20c5..e7ffbca 100644 --- a/bdd.php +++ b/bdd.php @@ -66,7 +66,7 @@ function ajouter_doc($request){ function saveFilesFromPost($postData,$id_ensemble) { global $conn; - + // Check if the $_POST variable is set and contains files //echo(print_r($_FILES,true)); @@ -219,7 +219,7 @@ function RechercheExercices($query, $length, $tags) if (!empty($tags)) { $tagConditions = array_map(function ($tag) { $tag = htmlspecialchars($tag); - return "EXISTS (SELECT * FROM exercices_themes AS et INNER JOIN themes AS t ON et.exercice_id = t.id WHERE et.theme_id = t.id AND t.name = '$tag' AND)"; + return "EXISTS (SELECT * FROM exercices_themes AS et INNER JOIN themes AS t ON et.exercice_id = t.id WHERE et.theme_id = t.id AND t.name = '$tag')"; }, $tags); $conditions[] = implode(" AND ", $tagConditions); @@ -260,4 +260,4 @@ function valider_ensemble($ensembleId) { $conn->execute_query($updateQuery); } -?> \ No newline at end of file +?> diff --git a/ens.php b/ens.php new file mode 100644 index 0000000..d78ba32 --- /dev/null +++ b/ens.php @@ -0,0 +1,81 @@ +getMessage(); +} + +// Récupération de l'ID de l'ensemble et du thème depuis l'URL ou autrement +$ensembleId = isset($_GET['ensemble_id']) ? intval($_GET['ensemble_id']) : ''; +$themeId = isset($_GET['theme_id']) ? intval($_GET['theme_id']) : ''; + +// Vérification de la validité de l'ID de l'ensemble +if (!empty($ensembleId)) { + // Préparation de la requête SQL pour obtenir les informations sur l'ensemble + $sqlEnsemble = 'SELECT * FROM ensembles WHERE id = ?'; + $stmtEnsemble = $conn->prepare($sqlEnsemble); + $stmtEnsemble->bind_param('i', $ensembleId); + $stmtEnsemble->execute(); + $resultEnsemble = $stmtEnsemble->get_result(); + $ensemble = $resultEnsemble->fetch_assoc(); + + if ($ensemble && $ensemble['valide'] == true) { + // Affichage de l'intitulé de l'ensemble + echo '

' . htmlspecialchars($ensemble['commentaire_auteur']) . '

'; + + + // Préparation de la requête SQL pour obtenir les informations sur les exercices sélectionnés + $sqlExos = 'SELECT e.*, t.name AS theme_name, te.id AS exotheme_id FROM exercices e '. + 'JOIN themes t ON e.ensemble_id = ?'. + 'LEFT JOIN exercices_themes te ON e.id = te.exercice_id ORDER BY te.id ASC'; + $stmtExos = $conn->prepare($sqlExos); + echo($sqlExos); + $stmtExos->bind_param('i', $ensembleId); + $stmtExos->execute(); + $resultExos = $stmtExos->get_result(); + + while ($exo = $resultExos->fetch_assoc()) { + switch ($exo['type']) { + case 1: + // Traiter les annales + echo '
'; + echo '

' . htmlspecialchars($exo['titre']) . '

'; + echo '

' . nl2br(htmlspecialchars($exo['commentaire_auteur'])) . '

'; + echo '

Durée estimée : ' . gmdate('H:i:s', $exo['duree']) . '

'; + echo 'Télécharger'; + echo '
'; + break; + case 2: + // Traiter les textes à trous + break; + case 3: + // Traiter les fiches de révision + echo '
'; + echo '

' . htmlspecialchars($exo['titre']) . '

'; + echo '

' . nl2br(htmlspecialchars($exo['commentaire_auteur'])) . '

'; + echo 'Télécharger'; + echo '
'; + break; + case 4: + // Traiter les QCM + echo "oui"; + break; + } + } + } else { + echo 'L\'ensemble demandé n\'existe pas ou il n\'est pas encore validé.'; + } +} else { + echo 'Aucun identifiant d\'ensemble fourni.'; +} + +// Fermeture de la connexion à la base de données +$conn->close(); +?> + + +?> \ No newline at end of file diff --git a/index.php b/index.php index b7477ec..3bcaabf 100644 --- a/index.php +++ b/index.php @@ -18,9 +18,9 @@ -
+ - +
@@ -39,7 +39,6 @@ data = await resp.json(); console.log("test"); if(data.status == 1){ - alert(1); document.getElementById("user_status").innerText = data["msg"]; } } @@ -57,15 +56,33 @@ async function rechercher(){ var req = document.getElementById("recherche_input").value; - + var themes = []; + Array.from(document.getElementsByClassName("theme")).forEach(function (el) { + // on encode en url pour pouvoir le passer dans la requete GET + themes.push(encodeURIComponent(el.innerText)); + }); + var duree =document.getElementById("duree_input").value - resp = await fetch("/annales/api.php/rechercher?req="+req); + + var url = "/annales/api.php/rechercher?req="+req; + if(themes.toString() != ""){ + url = url +"&themes="+themes.toString(); + } + + if(duree != ""){ + url = url +"duree="+duree; + + } + console.log(url); + + resp = await fetch(url); data = await resp.json(); if(data.status == 1){ data.resultats.forEach(doc => { const img = document.createElement("img"); img.src = doc.upload_path; + img.setAttribute("onclick","document.location.href='ens.php?ensemble_id="+doc.ensemble_id.toString()+"'"); document.body.appendChild(img); }); } @@ -78,9 +95,18 @@ rechercher(); } } + document.getElementById("themes_input").onkeydown =function(event) { + if (event.key === "Enter"){ + var theme = document.createElement("div"); + theme.setAttribute("class","theme"); + theme.innerText = document.getElementById("themes_input").value; + document.getElementById("recherche_form").appendChild(theme); + document.getElementById("themes_input").value = ""; + } + } - \ No newline at end of file +