У меня есть таблица, названная студентами студентов, которую я показываю в форме, чтобы иметь возможность обновлять свои данные.
У меня также есть таблица под названием Groepen (группы), и некоторые ученики являются частью группы. Группа, в которой они входят, также отображается. И есть выбор, чтобы сделать студенческую часть группы.
Выглядит так:
Если студент является частью группы, и я, например, обновляю его номер телефона, он больше не входит в группу после обновления.
Как я могу это предотвратить?
Мой код
<?php $q = "SELECT * FROM students LEFT JOIN Groepen ON Groepen.groep_id=students.groep WHERE students.uid = '$user[uid]' ORDER BY st_last ASC"; $r = mysqli_query($dbc, $q); if (mysqli_num_rows($r) > 0) { echo " <p>Om gegevens te wijzigen of aan te vullen kunt u gewoon in het desbetreffende veld typen en vervolgens op 'update' klikken.</p></br></br> <table class='table'> <thead> <tr> <th>Naam</th> <th>Voornaam</th> <th>Graad</th> <th>Telefoon</th> <th>Gsm</th> <th>Email</th> <th>Lid van groep</th> <th>Toevoegen aan/verwijderen uit groep</th> </tr> </thead>"; while($student_list = mysqli_fetch_assoc($r)) { ?> <tbody> <form action="" method="POST" role="form"> <tr> <input type="hidden" value="<?php echo $student_list['sid']?>" name="sid" /> <td width="8%"><input type="text" class="form-control" name="st_last" value="<?php echo $student_list['st_last']; ?>" /></td> <td width="6%"><input type="text" class="form-control" name="st_first" value="<?php echo $student_list['st_first']; ?>"/></td> <td width="2%"><input type="text" class="form-control" name="graad" value="<?php echo $student_list['graad']; ?>"/></td> <td width="7%"><input type="text" class="form-control" name="vaste_telefoon" value="<?php echo $student_list['vaste_telefoon']; ?>"/></td> <td width="7%"><input type="text" class="form-control" name="gsm" value="<?php echo $student_list['gsm']; ?>"/></td> <td width="10%"><input type="text" class="form-control" name="email" value="<?php echo $student_list['email']; ?>"/></td> <td width="8%" style="padding-top: 15px;"><?php echo $student_list['groepsnaam']; ?></td> <td width="7%"><div class="form-group"> <select class="form-control" name="groep_id" id="groep"> <option value="><?$student_list['groepid']; ?>"><?php echo $student_list['groepsnaam']; ?></option> <?php $q2 = "SELECT * FROM Groepen ORDER BY groepsnaam ASC"; $r2 = mysqli_query($dbc, $q2); while($groep_list = mysqli_fetch_assoc($r2)) { ?> <option value="<?php echo $groep_list['groep_id']; ?>"><?php echo $groep_list['groepsnaam']; ?></option> <?php } ?> </select> </div></td> <td width="12%"> <div class="btn-group" role="group" aria-label="..."> <button type="submit" name="updatell" class="btn btn-warning">Update</button> <button type="submit" name="deletell" class="btn btn-danger">Delete</button></td> </tr> </form> </tbody> <?php } } else { echo "U hebt nog geen leerlingen toegevoegd."; } ?> </table>
И запрос на обновление:
<?php if(isset($_POST['updatell'])) { $qupdatestudent = "UPDATE students SET st_last='$_POST[st_last]', st_first='$_POST[st_first]', groep='$_POST[groep_id]', graad='$_POST[graad]', vaste_telefoon='$_POST[vaste_telefoon]', gsm='$_POST[gsm]', email='$_POST[email]' WHERE sid='$_POST[sid]'"; $r2 = mysqli_query($dbc, $qupdatestudent); } if(isset($_POST['deletell'])) { $deletestudent = "DELETE FROM students WHERE sid='$_POST[sid]'"; $r3 = mysqli_query($dbc, $deletestudent); } ?>
См. Эту строку здесь,
<option value="><?$student_list['groepid']; ?>"><?php echo $student_list['groepsnaam']; ?></option> ^ see this closing bracket
Вместо того, чтобы добавить дополнительный <option>
в элемент <select>
, на каждой итерации цикла while проверьте, совпадает ли текущий идентификатор группы с идентификатором группы ученика или нет, и сделайте его соответствующим образом следующим образом:
<select class="form-control" name="groep_id" id="groep"> <?php $q2 = "SELECT * FROM Groepen ORDER BY groepsnaam ASC"; $r2 = mysqli_query($dbc, $q2); while($groep_list = mysqli_fetch_assoc($r2)) { ?> <option value="<?php echo $groep_list['groep_id']; ?>"<?php if($groep_list['groep_id'] == $student_list['groepid']){ echo " selected='selected'"; } ?>><?php echo $groep_list['groepsnaam']; ?></option> <?php } ?> </select>