1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
| <?php
// RECUPERATION / TRAITEMENT
$matiere_choisie=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['matieres'])));
$classe_choisie=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['classes'])));
$titre_cours_tp=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['titre_cours_tp'])));
$date_publication_tp=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['date_publication_tp'])));
$date_cloture_validation_cours_tp=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['date_cloture_validation_cours_tp'])));
$date_debut_validation_cours_tp=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['date_debut_validation_cours_tp'])));
$auteur_cours=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['auteur_cours'])));
$introduction_cours=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['introduction_cours'])));
$conclusion_cours=mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST['conclusion_cours'])));
// On récupère des array
$titre_chapitre_array = (!empty($_POST['titre_chapitre']))? $_POST['titre_chapitre'] : NULL;
$contenu_chapitre_array = (!empty($_POST['contenu_chapitre']))? $_POST['contenu_chapitre'] : NULL;
$question_chapitre_array = (!empty($_POST['question_chapitre']))? $_POST['question_chapitre'] : NULL;
$reponse_chapitre_array = (!empty($_POST['reponse_chapitre']))? $_POST['reponse_chapitre'] : NULL;
if (is_array($titre_chapitre_array)) {
if(isset($_POST['poster_cours_tp'])) {
// => on enregistre en BDD si les zones de texte sont remplies - informations générales du Cours/TP
//if ($_POST['titre_cours_tp']==''||$_POST['auteur_cours']==''||$_POST['date_cloture_validation_cours_tp']==''||$_POST['date_publication_tp']==''||$_POST['introduction_cours']==''||$_POST['conclusion_cours']=='') {
//echo "Veuillez saisir les informations générales du Cours/TP.";
//exit();
//}
//else
$query_insertion_cours_tp=mysql_query("INSERT INTO test_site_cours_v2 (titre_cours,auteur_cours,introduction_cours,conclusion_cours,date_publication_cours,date_cloture_validation_cours,date_debut_validation_cours,matiere_cours,classe_cours) VALUES ('$titre_cours_tp','$auteur_cours','$introduction_cours','$conclusion_cours',now(),'$date_cloture_validation_cours_tp','$date_debut_validation_cours_tp','$matiere_choisie','$classe_choisie')") or die('Erreur lors de l\'insertion d\'un Cours/TP (titre du cours, auteur du cours, introduction du cours, conclusion du cours, date de publication du cours, date de cloture de validation du cours)'.mysql_error()); // Envoie une requête à un serveur MySQL
$_SESSION['id_cours']=mysql_insert_id(); // On met sous session l'identifiant généré par la dernière requête (identifiant du Cours/TP)
// On récupère l'identifiant du cours pour le mettre dans les requêtes SQL d'insertion
$query_selection_cours=mysql_query("SELECT id_cours FROM test_site_cours_v2 WHERE titre_cours='$titre_cours_tp'") or die('Erreur lors de la sélection de l\'identifiant du Cours/TP'.mysql_error()); // Envoie une requête à un serveur MySQL
// On récupère l'identifiant du chapitre pour le mettre dans les requêtes SQL d'insertion
$query_selection_chapitre=mysql_query("SELECT id_chapitre FROM test_site_chapitres_v2 WHERE auteur_chapitre='$auteur_cours'") or die('Erreur lors de la sélection d\'un Cours/TP'.mysql_error()); // Envoie une requête à un serveur MySQL
// Boucles pour récupérer les identifiants du Cours/TP et des Chapitres - DEBUT
while($recuperation_identifiant_cours = mysql_fetch_assoc($query_selection_cours)) {
$recuperation_identifiant_cours['id_cours'];
$_SESSION['id_cours']=$recuperation_identifiant_cours['id_cours'];
}
while($recuperation_identifiant_chapitre = mysql_fetch_assoc($query_selection_chapitre)) {
$recuperation_identifiant_chapitre['id_chapitre'];
$_SESSION['id_chapitre']=$recuperation_identifiant_chapitre['id_chapitre'];
}
// Boucles pour récupérer les identifiants du Cours/TP et des Chapitres - FIN
// => on enregistre en BDD si les zones de texte sont remplies
if(empty($titre_chapitre_array)&&empty($contenu_chapitre_array)&&empty($question_chapitre_array)&&empty($reponse_chapitre_array)) {
echo "Veuillez saisir au moins un chapitre et au moins une question sans oublier sa réponse.";
exit();
}
else
// Le samedi 22 février 2014 j'ai repris tout le code à partir de là
// Boucle permettant d'insérer dans la base de données les chapitres - DEBUT
foreach($titre_chapitre_array as $num_chapitre => $titre_chapitre) {
// A améliorer : Ces deux variables récupèrent que le premier titre et le premier contenu du chapitre, les autres non, c'est pour cele que j'ai ajouté le bloc qui permet de supprimer les enregistrements des tables "test_site_chapitres_v2", "test_site_questions_v2" et "test_site_reponses_v2" qui sont vides
$titre_chapitre = mysql_real_escape_string(htmlspecialchars(stripcslashes(!empty($titre_chapitre_array[$num_chapitre]))? $titre_chapitre_array[$num_chapitre] : ''));
$contenu_chapitre = mysql_real_escape_string(htmlspecialchars(stripcslashes(!empty($contenu_chapitre_array[$num_chapitre]))? $contenu_chapitre_array[$num_chapitre] : ''));
// Insertion des chapitres dans la base de données
$query_insertion_chapitre=mysql_query("INSERT INTO test_site_chapitres_v2 (id_cours,titre_chapitre,contenu_chapitre,date_depot,auteur_chapitre) VALUES (".$_SESSION['id_cours'].",'$titre_chapitre','$contenu_chapitre',now(),'$auteur_cours')") or die('Erreur lors de l\'insertion d\'un chapitre d\'un Cours/TP (identifiant du cours, titre du chapitre, contenu du chapitre, date de dépot du chapitre)'.mysql_error()); // Envoie une requête à un serveur MySQL
$_SESSION['id_chapitre']=mysql_insert_id(); // On met sous session l'identifiant généré par la dernière requête (identifiant du chapitre)
// Boucle permettant d'insérer dans la base de données les questions/réponses - DEBUT
foreach($question_chapitre_array[$num_chapitre] as $num_question => $question_chapitre) {
$question_chapitre = mysql_real_escape_string(htmlspecialchars(stripcslashes(!empty($question_chapitre_array[$num_chapitre][$num_question]))? $question_chapitre_array[$num_chapitre][$num_question] : ''));
$reponse_chapitre = mysql_real_escape_string(htmlspecialchars(stripcslashes(!empty($reponse_chapitre_array[$num_chapitre][$num_question]))? $reponse_chapitre_array[$num_chapitre][$num_question] : ''));
// Insertion des questions/réponses dans la base de données
$query_insertion_questions=mysql_query("INSERT INTO test_site_questions_v2 (id_cours,id_chapitre,contenu_question,date_depot,auteur_question) VALUES (".$_SESSION['id_cours'].",".$_SESSION['id_chapitre'].",'$question_chapitre',now(),'$auteur_cours')") or die('Erreur lors de l\'insertion d\'une question d\'un chapitre d\'un Cours/TP (identifiant du chapitre, contenu de la question, date de dépot de la question)'.mysql_error()); // Envoie une requête à un serveur MySQL
$_SESSION['id_question']=mysql_insert_id(); // On met sous session l'identifiant généré par la dernière requête (identifiant de la question)
$query_insertion_reponses=mysql_query("INSERT INTO test_site_reponses_v2 (id_cours,id_chapitre,id_question,texte_reponse,date_depot) VALUES (".$_SESSION['id_cours'].",".$_SESSION['id_chapitre'].",".$_SESSION['id_question'].",'$reponse_chapitre',now())") or die('Erreur lors de l\'insertion d\'une réponse à une question d\'un Cours/TP (identifiants du cours/du chapitre/de la réponse, contenu de la réponse, date de dépot de la réponse'.mysql_error()); // Envoie une requête à un serveur MySQL
$_SESSION['id_reponse']=mysql_insert_id(); // On met sous session l'identifiant généré par la dernière requête (identifiant de la reponse)
// Boucle permettant d'insérer dans la base de données les questions/réponses - FIN
// Bloc qui permet de supprimer les enregistrements dans lesquels titre_chapitre, contenu_chapitre, auteur_chapitre, contenu_question, id_question,texte_reponse et auteur_reponse sont vides - DEBUT (en attendant de comprendre comment insérer que des enregistrements non vides)
$query_suppression_titres_contenus_vides_chapitres=mysql_query("DELETE FROM test_site_chapitres_v2 WHERE titre_chapitre='' AND contenu_chapitre='' AND auteur_chapitre='$pseudo_utilisateur'") or die('Erreur lors de la suppression (en attente d\'une amélioration) des champs vides (titre_chapitre,contenu_chapitre, auteur_chapitre) pour assurer qu\'il n\'y a pas d\'enregistrement vide.'.mysql_error()); // Envoie une requête à un serveur MySQL
$query_suppression_contenus_vides_questions=mysql_query("DELETE FROM test_site_questions_v2 WHERE contenu_question='' AND reponse_question='' AND auteur_question='$pseudo_utilisateur'") or die('Erreur lors de la suppression (en attente d\'une amélioration) des champs vides (contenu_question,reponse_question) pour assurer qu\'il n\'y a pas d\'enregistrement vide.'.mysql_error()); // Envoie une requête à un serveur MySQL
$query_suppression_contenus_vides_reponses=mysql_query("DELETE FROM test_site_reponses_v2 WHERE id_question='' AND texte_reponse=''") or die('Erreur lors de la suppression (en attente d\'une amélioration) des champs vides (id_question,texte_reponse) pour assurer qu\'il n\' a pas d\'enregistrement vide.'.mysql_error()); // Envoie une requête à un serveur MySQL
// Bloc qui permet de supprimer les enregistrements dans lesquels titre_chapitre, contenu_chapitre, contenu_question, auteur_chapitre id_question,texte_reponse et auteur_reponse sont vides - FIN (en attendant de comprendre comment insérer que des enregistrements non vides)
}
// Insertion de la relation Cours-TP/Utilisateurs/Chapitres/Questions dans la base de données
$query_insertion_relation_cours_tp_utilisateur=mysql_query("INSERT INTO test_site_relation_cours_tp_utilisateur_v2 (id_cours,id_utilisateur,id_chapitre,id_question,id_reponse,date_depot_rel_cours_user) SELECT t1.id_cours,'$id_utilisateur',t3.id_chapitre,t4.id_question,t5.id_reponse,now() FROM test_site_cours_v2 t1,test_site_utilisateur t2,test_site_chapitres_v2 t3,test_site_questions_v2 t4,test_site_reponses_v2 t5 WHERE t1.id_cours= ".$_SESSION['id_cours']." AND t3.id_chapitre=".$_SESSION['id_chapitre']." AND pseudo_utilisateur='$auteur_cours' AND titre_cours='$titre_cours_tp' AND t1.date_publication_cours=now()") or die('Erreur lors de l\'insertion de la relation Cours-TP/Utilisateur avec Chapitres+Questions+Réponses (pour assurer l\'affichage)'.mysql_error()); // Envoie une requête à un serveur MySQL
}
}
echo "Votre Cours/TP a été posté.";
}
?> |
Partager