2016-12-03 3 views
1

Ich habe eine Tabelle namens Studenten von Studenten, die ich in einem Formular anzeigen, um ihre Daten zu aktualisieren.Anzeige von Daten in einer Tabelle für Aktualisierungszwecke

Ich habe auch eine Tabelle namens Groepen (Gruppen), und einige Studenten sind Teil einer Gruppe. Die Gruppe, zu der sie gehören, wird ebenfalls angezeigt. Und es gibt eine Auswahlmöglichkeit, um einen Schüler Teil einer Gruppe zu machen.

sieht wie folgt aus: enter image description here

Wenn ein Student ein Teil einer Gruppe ist und ich zum Beispiel aktualisieren, seine Telefonnummer, er ist nicht in der Gruppe mehr nach dem Update.

Wie kann ich das verhindern?

Mein Code ist

<?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> 

Und die Update-Abfrage:

<?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); 
    } 
?> 

Antwort

1

diese Linie Sehen Sie hier,

<option value="><?$student_list['groepid']; ?>"><?php echo $student_list['groepsnaam']; ?></option> 
      ^see this closing bracket 

Statt einen zusätzlichen <option> im <select> Element setzen, in jede Iteration von while Schleife überprüfen, ob die c id urrent Gruppenspiele mit der Gruppen-ID des Studenten oder nicht, und machen es selected demnach wie folgt aus:

<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> 
+0

Vielen Dank! Funktioniert. Ich kannte die ausgewählte = 'ausgewählte' Lösung nicht. –

+0

@BertLietaert Ich bin froh, dass ich helfen konnte. Bitte * akzeptieren * die Antwort, wenn das Problem behoben wurde. [Wie akzeptiere ich die Antwort zu Stack Overflow?] (Http://meta.stackexchange.com/a/5235) –

Verwandte Themen