Esempio n. 1
0
 /**
  * Получить список студентов группы
  * @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];
 }