// Build an array of unique student names. $students = array(); foreach ($lines as $separate_line) { if (trim($separate_line) != '') { $fields = explode(',', $separate_line); $sid = trim($fields[0]); $session = trim($fields[2]); // Modules will be added later. $students[$sid]['sid'] = $sid; $students[$sid]['session'] = $session; $students[$sid]['modules'] = array(); } } // Query the modules for each student foreach ($students as $student) { $student_databaseID = UserUtils::studentid_exists($student['sid'], $mysqli); if ($student_databaseID !== false) { $students[$student['sid']]['dbID'] = $student_databaseID; $result = $mysqli->prepare("SELECT moduleid, attempt FROM modules_student, modules WHERE modules_student.idMod = modules.id AND userID = ? AND calendar_year = ?"); $result->bind_param('is', $student_databaseID, $student['session']); $result->execute(); $result->store_result(); $result->bind_result($moduleid, $attempt); while ($result->fetch()) { if (isset($module_list[$moduleid])) { $students[$student['sid']]['modules'][$moduleid][] = $attempt; } } $result->close(); } }