/** * Получить список студентов группы * @param mixed $group_id id группы или массив * @return array [ [numst, name, gr] ] */ public static function getStudents($group_id) { $group_id = RPU::arr($group_id); sort($group_id); $key = join('_', $group_id); if (!isset(RPIrro::$gr_numsts[$key])) { $groups = RPIrro::getNameGroupByID($group_id); $MsSQL = RPDB::connect('iac'); $stud = array(); if ($group_id) { $q = "select [Fam],[Name] as [Nam],[Otch],[Login] as [Numst],[NameEng] as gr FROM Students.dbo.RPK_Full_New "; $q_cond = array("[DepType]='Студент'"); $group_st_perevodniki = array(); foreach ($groups as $keyGroup => $valueGroup) { $tempGroup = explode('-', $valueGroup); $group_st_perevodniki[] = " [NameEng] like '" . $tempGroup[0] . '-%_' . $tempGroup[1] . "'"; } if (count($groups)) { $q_cond[] = " ([NameEng] IN ('" . join("','", $groups) . "') or " . join(' or ', $group_st_perevodniki) . ")"; } $q_cond[] = " [DepStatus]='У' "; if (count($q_cond) > 0) { $q .= " where " . join(' and ', $q_cond); } $q .= " order by [Fam],[Name],[Otch]"; if ($STH = $MsSQL->query($q)) { $groups = array_flip($groups); while ($temp = $STH->fetch(PDO::FETCH_ASSOC)) { $t['name'] = trim($temp['Fam']) . ' ' . trim($temp['Nam']) . ' ' . trim($temp['Otch']); $t['gr'] = $groups[$temp['gr']]; $t['numst'] = trim($temp['Numst']); $stud[] = $t; } } } RPIrro::$gr_numsts[$key] = $stud; } return RPIrro::$gr_numsts[$key]; }