2017-02-16 1 views
1

Ich möchte $teacherIDList, um die lehrerID einzuschließen, wenn es mit der gleichen courseID zum Beispiel ich möchte es ('RITC01','RITC01') Schleifen aber im Moment ist es nur ('RITC01').Mysqli gehören in Array wiederholt Wert

PHP:

function getTeacherID($subjectID) { 
    require ('dbconnect.php'); 
    $teacherIDSQL = mysqli_query($dbc,"SELECT teacherID FROM TeacherClassRoomCourse WHERE courseID = '$subjectID'"); 
    $teacherIDList = []; 
    while($teacherID = mysqli_fetch_array($teacherIDSQL,MYSQLI_ASSOC)) { 
     array_push($teacherIDList, $teacherID['teacherID']); 
     return $teacherIDList; 
    } 
} 
getTeacherID('COMP12'); 

dbconnect.php enthält $dbc, die mit der Datenbank verbindet.

TeacherClassRoomCourse Tabelle:

TeacherClassRoomCourse sql table

Antwort

1

Alles, was Sie tun müssen, ist die Rückkehr des Feldes bewegen Sie sich außerhalb der while-Schleife bauen wie diese

function getTeacherID($subjectID) { 
    require ('dbconnect.php'); 
    $teacherIDSQL = mysqli_query($dbc,"SELECT teacherID FROM TeacherClassRoomCourse WHERE courseID = '$subjectID'"); 
    $teacherIDList = []; 
    while($teacherID = mysqli_fetch_array($teacherIDSQL,MYSQLI_ASSOC)) { 
     array_push($teacherIDList, $teacherID['teacherID']); 

    } 
    return $teacherIDList; 
} 
$someting = getTeacherID('COMP12'); 
1

Sie return innerhalb der while Schleife , so bricht es nach der ersten Iteration. Verschieben Sie die return außerhalb der Schleife, so dass es über alle Ergebnisse und nicht nur die erste iterieren kann.

function getTeacherID($subjectID) { 
    require ('dbconnect.php'); 
    $teacherIDSQL = mysqli_query($dbc,"SELECT teacherID FROM TeacherClassRoomCourse WHERE courseID = '$subjectID'"); 
    $teacherIDList = []; 
    while($teacherID = mysqli_fetch_array($teacherIDSQL,MYSQLI_ASSOC)) { 
     array_push($teacherIDList, $teacherID['teacherID']); 
    } 
    return $teacherIDList; // Return after while is complete 
} 

Hinweise:

  1. Sie sind auch anfällig für SQL-Injection und sollte stattdessen parametrisierte Abfragen mit Platzhalter verwenden.
  2. Sie sind nicht mit getTeacherID() in Ihrem Code etwas zu tun, müssen Sie es auf eine Variable $results = getTeacherID('COMP12');

Referenzen zuweisen