Cher Stack membres Overflow,Un isset dans une autre isset avec html et php qui ne travaillent pas
Je suis en train de créer un formulaire pour les prix de l'école où un utilisateur choisira une classe (niveau) et soumettre. Les prix pour cette classe (il peut y avoir plusieurs prix) seront affichés dans un tableau avec une liste déroulante d'une liste d'étudiants dans cette classe à côté de chaque prix.
L'utilisateur sélectionnera ensuite un étudiant dans la liste déroulante à côté de chaque prix et le soumettra de nouveau, ce qui permettra de sauvegarder les enregistrements dans un tableau.
Cela fonctionne bien sauf la dernière partie où les étudiants et les récompenses ne sont pas enregistrées. Vous ne savez pas si le problème est lié à un isset dans un autre isset.
<?php
if(isset($_POST['submit'])) {
\t include 'db_connect.php'; \t
\t $level \t = $_POST['level'];
\t
\t \t $query = mysqli_query($conn, "SELECT a.awardcode, a.level, b.awardname, a.year FROM awardyrlevel AS a
\t \t INNER JOIN award AS b
\t \t ON a.awardcode = b.awardcode
\t \t WHERE a.level = '$level' AND a.year = year(curdate())");
\t
?>
<table border="1" style= "background-color: white; color: #761a9b; <!--margin: 0 auto-->;" >
\t \t <thead>
\t \t \t <tr>
\t \t \t <th>Award Code</th>
\t \t \t <th>Award Name</th>
\t \t \t <th>Year Level</th> \t \t \t
\t \t \t <th>Select Student</th> \t \t
\t \t \t </tr>
\t \t </thead>
\t \t <tbody>
\t \t \t <?php
\t \t \t while($row = mysqli_fetch_assoc($query)){
?>
\t \t \t \t <tr>
\t \t \t \t <td> <input type = "text" name="awardcode[]" value = "<?php echo $row['awardcode']; ?>" readonly /> </td>
\t \t \t \t <td><?php echo "{$row['awardname']}" ?> </td>
\t \t \t \t <td><?php echo "{$row['level']}" ?></td>
\t \t \t \t \t <td><select name="studcode[]" >
\t \t \t \t \t \t \t \t <option disabled selected value> -- Select Student -- </option>
\t \t \t \t \t \t \t \t <?php
\t \t \t \t \t \t \t \t \t $sql = mysqli_query($conn, "SELECT * FROM student where year_level = '$level'");
\t \t \t \t \t \t \t \t \t while ($row = mysqli_fetch_assoc($sql)){
\t \t \t \t \t \t \t \t \t \t echo '<option value = " '.$row['stud_code'].'"> '.$row['name'].' </option>';
\t \t \t \t \t \t \t \t \t }
\t \t \t \t \t \t \t \t ?>
\t \t \t \t \t \t </select> \t \t \t \t \t \t
\t \t \t
\t \t \t \t \t </td>
\t \t \t \t </tr>\n;
\t \t \t \t
\t \t
\t \t \t <?php } ?>
\t \t
\t \t </tbody>
</table>
\t \t \t <br><br>
\t \t \t <input id="save_button" type="submit" name="saveselection" value="Save Selection">
\t \t \t <input id="exit_button" type="submit" name="exit" value="Exit" onclick="window.history.go(-1); return false;">
\t
<?php
\t \t \t \t \t
\t if(isset($_POST['saveselection'])) {
\t \t $awardcode = $_POST['awardcode'];
\t \t $studcode = $_POST['studcode'];
\t \t $level = $row['level'];
\t \t $year = year(curdate());
\t \t $session_user = '2365';
\t \t echo $awardcode;
\t \t
\t \t foreach ($_POST['awardcode'] as $awardcode) {
\t \t $query = mysqli_query($conn, "INSERT INTO `awardwinner`(`awardcode`, `stud_code`, `level`, `year`, `doe`, `enteredby`)
\t \t \t \t \t \t \t VALUES ('$awardcode', '$studcode', '$level', '$year', now(), '$session_user')");
\t \t } \t \t
\t
\t }
}
?>
Le code que je l'ai écrit est simple avec html et php. J'ai essayé de déboguer cela assez longtemps. Est-ce que l'un d'entre vous pourrait suggérer ce qui ne va pas dans ce dossier?
Xtrême à injection SQL – CD001
'$ l'année = année (curdate());' 'année()' et 'curdate()' ne sont pas des fonctions PHP –
... et c'est pourquoi les développeurs/Les programmeurs ont passé des décennies à marteler l'idée de [Separation of Concerns] (https://en.wikipedia.org/wiki/Separation_of_concerns) – CD001