2017-02-16 16 views
1

私は('RITC01','RITC01')であることを欲しがっていますが、現時点では('RITC01')であることを欲しければ、同じcourseIDでループするときに$teacherIDListにteacherIDを含めます。mysqliは配列の繰り返し値に含まれます

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がデータベースに接続$dbcを含んでいます。

TeacherClassRoomCourseテーブル:

TeacherClassRoomCourse sql table

答えて

1

あなたがする必要があるすべては、あなたがwhileループ内でこの

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

のようなwhileループあなたreturn外に構築されている配列のリターンを移動しています最初の繰り返しの後に壊れます。 returnをループ外に移動すると、最初のループだけでなくすべての結果を繰り返し処理できるようになります。

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 
} 

注:

  1. あなたはまた、SQLインジェクションの脆弱性だし、代わりにプレースホルダをパラメータ化クエリを使用する必要があります。
  2. あなたは、あなたのコード内でgetTeacherID()で何もしていない、あなたは変数$results = getTeacherID('COMP12');

参照

関連する問題