Recalculer une moyenne et enregistrement dans la base de données

Petit nouveau ! | 2 Messages

22 août 2019, 13:03

Bonjour à tous,
j'ai un problème qui est d'afficher d'abord la page où il y a les notes d'un élève et le problème c'est quand je modifie une note et que je clique sur le bouton recalculer et valider je n'ai pas les modifications dans ma base de données. Voici le code de la page qui traite ces actions :

Code : Tout sélectionner

<?php $nv_dv1 = $_POST['nv_dv1']; $nv_dv2 = $_POST['nv_dv2']; $nv_cp1 = $_POST['nv_cp1']; $dv_s1 = $nv_dv1+$nv_dv2/2; $moy_s1 = $dv_s1+$nv_cp1/2; $bdd = new PDO('mysql:host=localhost; dbname=espace_membres', 'root', 'root'); require('controle_connexion.php'); if(isset($_POST['valider'])) { $reqdv1 = $bdd->prepare("SELECT * FROM inscription WHERE id = ?"); $reqdv1->execute(array($_GET['id'])); $note = $reqdv1->fetch(); if(isset($_POST['nv_dv1']) AND !empty($_POST['nv_dv1'])) { $nv_dv1 = $_POST['nv_dv1']; $insertdv1 = $bdd->prepare("UPDATE inscription SET devoir1 = ? WHERE id = ?"); $insertdv1->execute(array($nv_dv1, $_SESSION['id'])); header('Location: modif_note.php?id='.$_SESSION['id']); } if(isset($_POST['nv_dv2']) AND !empty($_POST['nv_dv2'])) { $nv_dv2 = $_POST['nv_dv2']; $insertdv2 = $bdd->prepare("UPDATE inscription SET devoir2 = ? WHERE id = ?"); $insertdv2->execute(array($nv_dv2, $_SESSION['id'])); header('Location: modif_note.php?id='.$_SESSION['id']); } if(isset($_POST['nv_cp1']) AND !empty($_POST['nv_cp1'])) { $nv_cp1 = $_POST['nv_cp1']; $insertcp1 = $bdd->prepare("UPDATE inscription SET composition1 = ? WHERE id = ?"); $insertcp1->execute(array($nv_cp1, $_SESSION['id'])); header('Location: modif_note.php?id='.$_SESSION['id']); } if(isset($_POST['nv_sm1']) AND !empty($_POST['nv_sm1'])) { $nv_moy1 = $moy_s1; $insertsm1 = $bdd->prepare("UPDATE inscription SET semestre1 = ? WHERE id = ?"); $insertsm1->execute(array($nv_moy1, $_SESSION['id'])); header('Location: modif_note.php?id='.$_SESSION['id']); } } ?> <!DOCTYPE html> <html> <head> <title>App School Manager - Espace proffesseur</title> <link href="css/bootstraprof.css" rel="stylesheet" id="bootstrap-css"> <link href="css/prof.css" rel="stylesheet" id="bootstrap-css"> <script src="js/prof.js"></script> <script src="js/prof2.js"></script> <!------ Include the above in your HEAD tag ----------> </head> <body> <nav class="navbar navbar-default navbar-static-top"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#"> App School Manager </a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <form class="navbar-form navbar-left" method="GET" role="search"> <div class="form-group"> <input type="text" name="q" class="form-control" placeholder="Rechercher"> </div> <button type="submit" class="btn btn-default"><i class="glyphicon glyphicon-search"></i></button> </form> <ul class="nav navbar-nav navbar-right"> <li><a href="#" target="_self">Changer nom utilisateur</a></li> <li><a href="#" target="_self">Changer mot de passe</a></li> <li><a href="deconnexion.php">Déconnexion</a></li> </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> <div class="container-fluid main-container"> <div class="col-md-2 sidebar"> <ul class="nav nav-pills nav-stacked"> <li><a href="espace_prof.php">Accueil</a></li> <li class="active"><a href="#">Elève</a></li> <li><a href="#">Classes</a></li> <li><a href="#">Cours/Exercices</a></li> <li><a href="#">Réclamations</a></li> </ul> </div> <div class="col-md-10 content"> <div class="panel panel-default"> <div class="panel-heading"> Tableau de bord Professeur </div> <div class="panel-body" align="center"> <img src="images/logo.jpg" align="center"> <br /> <br /><div align="right"><h5>Effectuer une nouvelle recherche</h5> <form method="POST" action="resultat2.php"> <input type="text" name="recheleve2"> </form></div> <form method="POST" action=""> <br /> <?php $id_s = 0; if(isset($_GET['id'])) { $id_s = intval($_GET['id']); } try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=espace_membres', 'root', 'root', $pdo_options); $req = $bdd->prepare("SELECT id_e, prenom_e, nom_e, devoir1, devoir2, composition1, semestre1, devoir3, devoir4, composition2, semestre2, annuelle FROM inscription WHERE id_e = ?"); $req->execute(array($_GET['id'])); ?> <?php while ($infos = $req->fetch()) { ?> <br /><h3>Modification des notes de <b><?php echo $infos['prenom_e']; echo"&nbsp;"; echo $infos['nom_e']; ?></b></h3></h1><br /> <div class="form-group col-md-4"> <label>Notes 1er Semestre</label><br/><br/> <label>Devoir 1</label> <input class="form-control" name="nv_dv1" type="number" value="<?php echo $infos['devoir1']; ?>"> <label>Devoir 2</label> <input class="form-control" name="nv_dv2" type="number" value="<?php echo $infos['devoir2']; ?>"> <label>Composition 1</label> <input class="form-control" name="nv_cp1" type="number" value="<?php echo $infos['composition1']; ?>"> <label>Semestre 1</label> <input class="form-control" name="nv_sm1" type="number" value="<?php echo $infos['semestre1']; ?>" readonly> </div> <div class="form-group col-md-4"> <label>Notes 2e Semestre</label><br/><br/> <label>Devoir 3</label> <input class="form-control" name="nv_dv3" type="number" step="any" value="<?php echo $infos['devoir3']; ?>" readonly> <label>Devoir 4</label> <input class="form-control" name="nv_dv4" type="number" step="any" value="<?php echo $infos['devoir4']; ?>" readonly> <label>Composition 2</label> <input class="form-control" name="nv_cp2" type="number" step="any" value="<?php echo $infos['composition2']; ?>" readonly> <label>Semestre 2</label> <input class="form-control" name="nv_sm2" type="number" step="any" value="<?php echo $infos['semestre2']; ?>" readonly> </div> <div class="form-group col-md-8"> <label>Moyenne Annuelle</label> <input class="form-control" name="nv_an" type="number" step="any" value="<?php echo $infos['anuelle']; ?>" readonly> <br /> <button type="submit" class="btn btn-default" name="valider">RECALCULER ET VALIDER</button></a> </div> <?php } $req->closeCursor(); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> <br /><br /><br /> </form> <div style="padding-top: 35px; padding-left: 400px;"> <?php if (isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } ?> </div> </div> </div><br /><br /><br /> <footer class="pull-left footer"> <p class="col-md-12"> <hr class="divider"> Copyright &COPY; 2018 App School Manager by <a href="http://www.kadiortech.com">Kadior'Tech</a> </p> </footer> </div> </body> </html>
Merci de votre aide SVP.

Mammouth du PHP | 1566 Messages

22 août 2019, 13:37

Il faut que tu avance un peu plus dans ton débogage.

affiche tes requète et condition avec des echo ou var_dump pour t'assurer que le chemin pris par ton scriupt est le bon.
test tes requètes dans phpmyadmin pour éviter les erreur de syntaxe.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Petit nouveau ! | 2 Messages

22 août 2019, 13:53

Bonjour Spols est ce que vous pouvez me dire à quel niveau je peux faire un var_dump ou me montrer un exemple ?

Mammouth du PHP | 1566 Messages

22 août 2019, 14:33

Non il y a trop de code je ne l'ai pas lu.

c'est à toi de savoir par où doit passer ton script et mettre des var_dump sur tes variable afin de tester leur valeur

les questions à te poser :µ
Où l'action de mon bouton commence?
Où sont mes requètes qui mette à jour ma BDD ?
Sont elles valables?


vérifie aussi tes fichier Log qu'il n'y a pas d'erreur non affichée
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie