/** * Autocomplete the firstname/lastname of a student * * @param string $query Part of a name * @param string $limit Number of results * @return array */ public function autocomplete($query, $limit) { $search_model = new Search_Model(); $students = $search_model->autocomplete($query, 'student', $limit); if (count($students) == 0) { return array(); } $usernames = array(); foreach ($students as $student) { $usernames[] = $student['_id']; } $students = DB::select(' SELECT u.id AS user_id, s.username, s.firstname, s.lastname FROM students s INNER JOIN users u ON u.username = s.username WHERE s.username IN ("' . implode('","', $usernames) . '") '); $students_by_username = array(); $students_sorted = array(); foreach ($students as $student) { $students_by_username[$student['username']] = $student; } foreach ($usernames as $username) { if (isset($students_by_username[$username])) { $students_sorted[] = $students_by_username[$username]; } } return $students_sorted; }