'.print_r($_POST,1).'';exit(); $name = addslashes($_POST['name']); $status = $_POST['status']; $access_fo = $_POST['access_fo']; //ограничение по форме обучения (если 0, то нет ограничений) $sql = 'UPDATE '.$ST['dbpf'].'_anketa SET name="'.$name.'", status="'.$status.'", access_fo="'.$access_fo.'" WHERE id='.$id; $rez = $DB->QUR($sql); $message = 'Опрос успешно отредактирован'; save_logs('Редактирование опроса №'.$id); $_GET['page'] = 'view'; } //берем информацию о самом опросе $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa WHERE id = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ $anketa = $rez[1]; } //echo '
'.print_r($anketa,1).'
';exit(); //Array( // [id] => 6 // [id_user] => 1 // [name] => ОЦЕНКА ВУЗА И ОБРАЗОВАТЕЛЬНОГО ПРОЦЕССА В ЦЕЛОМ (30.10.23-30.11.23) // [status] => 1 // [date_create] => 1698664532 // [access_fo] => ОФО //) $smarty->assign('anketa', $anketa); $smarty->assign('des', 'edit'); $maincontent = $smarty->fetch('tpl_polls.html'); } //ПРОСМОТР ДОСТУПНЫХ ДЛЯ РЕДАКТИРОВАНИЯ АНКЕТ if ($_GET['page'] == 'view'){ //создание опроса if (isset($_POST['add_polls'])){ $name = addslashes($_POST['name']); $status = $_POST['status']; $access_fo = $_POST['access_fo']; //ограничение по форме обучения (если 0, то нет ограничений) $sql = 'INSERT INTO '.$ST['dbpf'].'_anketa (id_user, name, status, date_create, access_fo) VALUES ("'.$id_user.'", "'.$name.'", "'.$status.'", "'.date("U").'", "'.$access_fo.'") '; //echo $sql; $rez = $DB->QUR($sql); $id = mysql_insert_id(); $message = 'Опрос успешно создан'; save_logs('Создан новый опрос №'.$id); } //выводим опросы $polls = array(); //$sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa WHERE id_user = "'.$id_user.'" '; $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ /*$val['date_born'] = date('d.m.Y', $val['date_born']); $val['date_doc'] = date('d.m.Y', $val['date_doc']); $val['date_edu'] = date('d.m.Y', $val['date_edu']);*/ $val['date_create'] = date('d.m.Y', $val['date_create']); $polls[] = $val; } } $smarty->assign('polls', $polls); $smarty->assign('message', $message); $smarty->assign('des', 'view'); $maincontent = $smarty->fetch('tpl_polls.html'); } //ПРОСМОТР РЕЗУЛЬТАТОВ ОПРОСА ПО ФАКУЛЬТЕТАМ if ($_GET['page'] == 'resultFakultet'){ $id = $_GET['des']; //список факультетов $faculties = array(); //$sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties WHERE id_school = 1 OR id_school = 2 '; //1 - МГТУ, основной вуз, 2 - филиал $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties WHERE NOT (id_school = 0) '; //1 - МГТУ, основной вуз, 2 - филиал $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['count'] = 0; //количество проголосовавших $faculties[] = $val; } } //сами вопросы теста $questions = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_questions WHERE id_anketa = "'.$id.'" AND NOT (type = "title") '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ //смотрим варианты ответов $val['answers'] = array(); $sql_ans = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id_question = "'.$val['id'].'" GROUP BY value'; $rez_ans = $DB->QUR_SEL($sql_ans); if ($rez_ans){ foreach ($rez_ans as $key_ans => $val_ans) if ($key_ans){ //смотрим, кто сколько ответил $val_ans['count'] = array(); foreach ($faculties as $kf => $val_fak) { $val_ans['count'][$val_fak['id']] = 0; //в начале ставим всем по нулям, это значит, что по умолчанию никто не принял участие в опросе } //теперь перебираем все варианты ответа и распределяем голоса $sql_voice = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id_question = "'.$val['id'].'" AND value = "'.$val_ans['value'].'" '; $rez_voice = $DB->QUR_SEL($sql_voice); if ($rez_voice){ foreach ($rez_voice as $key_voice => $val_voice) if ($key_voice){ //смотрим какой студент проголосовал - нужно определить факультет $student = get_student($val_voice['id_user']); //смотрим какой факультет $gruppa = get_grupp($student['id_grupp']); //начисляем голос в пользу того или иного факультета if ($gruppa['id_facult'] > 0) { $val_ans['count'][$gruppa['id_facult']]++; //считаем только если указан факультет! //ДОБАВЛЯЕМ ГОЛОСА К ФАКУЛЬТЕТУ foreach ($faculties as $kf => $val_fak){ if ($val_fak['id'] == $gruppa['id_facult']) $faculties[$kf]['count']++; //добавляем к faculties, чтобы глобально изменить переменную с количеством голосов //echo $val_fak['id'].' = '.$gruppa['id_facult'].' => '.$val_fak['count'].'
'; } } } } /***/ $val['answers'][] = $val_ans; } } $questions[] = $val; } //количество вопросов $count_question = $rez[0]; } $all_voice = 0; //всего принявших участие в опросе //теперь делим голоса на количество вопросов и находим реально число проголосовавших на факультете foreach ($faculties as $kf => $val_fak){ $faculties[$kf]['count'] = $faculties[$kf]['count']/$count_question; $all_voice += $faculties[$kf]['count']; } //для отладки /*echo '
';
		print_r($faculties);
		echo '
';*/ //exit; //echo $faculties[2]['id']; /***/ $smarty->assign('all_voice', $all_voice); //количество принявших участие в опросе $smarty->assign('faculties', $faculties); $smarty->assign('questions', $questions); $maincontent = $smarty->fetch('tpl_polls_result_fakultet.html'); } //ПРОСМОТР РЕЗУЛЬТАТОВ ВСЕГО ВУЗА if ($_GET['page'] == 'result'){ $id = $_GET['des']; //список факультетов $faculties = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_faculties WHERE NOT (id_school = 0) '; //1 - МГТУ, основной вуз, 2 - филиал $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $faculties[] = $val; } } //смотрим результаты (кто проходил) $result = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id_anketa = "'.$id.'" GROUP BY id_user '; $rez = $DB->QUR_SEL($sql); $count = 0; //всего студентов, принявших участие в опросе if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['date_create'] = date('d.m.Y', $val['date_create']); $val['user'] = get_user($val['id_user']); $val['student'] = get_student($val['id_user']); $count++; $result[] = $val; } } //СТАТИСТИКА //список вопросов $questions = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_questions WHERE id_anketa = "'.$id.'" AND NOT (type = "title") GROUP BY name '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ //варианты ответов в системе $val['answers'] = array(); $sql_ans = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id_question = "'.$val['id'].'" GROUP BY value '; $rez_ans = $DB->QUR_SEL($sql_ans); if ($rez_ans){ foreach ($rez_ans as $key2 => $val2) if ($key2){ //смотрим сколько выбравших этот вариант ответа $sql_count = 'SELECT id FROM '.$ST['dbpf'].'_anketa_answers WHERE id_question = "'.$val['id'].'" AND value = "'.$val2['value'].'" GROUP BY id_user'; $rez_count = $DB->QUR_SEL($sql_count); if ($rez_count){ $val2['count'] = $rez_count[0]; } $val['answers'][] = $val2; } } $questions[] = $val; } } /*********/ $smarty->assign('id', $id); //сам тест - айдишник $smarty->assign('count', $count); //количество прошедших опрос $smarty->assign('result', $result); //кто прошел опрос $smarty->assign('questions', $questions); //статистика - сами вопросы анкеты $smarty->assign('faculties', $faculties); //список факультетов $maincontent = $smarty->fetch('tpl_polls_result.html'); } //ПРОСМОТР КОНКРЕТНОГО РЕЗУЛЬТАТА ЧЕЛОВЕКА if ($_GET['page'] == 'result_acc'){ $id = $_GET['des']; //определяем какая анкета/опрос и какой пользователь проходил опрос $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ $student = $rez[1]['id_user']; $anketa = $rez[1]['id_anketa']; //теперь смотрим результаты определенного студента по определенному опросу $answers = array(); $sql2 = 'SELECT ans.*, quest.* FROM '.$ST['dbpf'].'_anketa_answers as ans, '.$ST['dbpf'].'_anketa_questions as quest WHERE ans.id_user = "'.$student.'" AND ans.id_anketa = "'.$anketa.'" AND quest.id = ans.id_question '; $rez2 = $DB->QUR_SEL($sql2); if ($rez2){ foreach ($rez2 as $key2 => $val2) if ($key2){ $answers[] = $val2; } } } $smarty->assign('answers', $answers); $maincontent = $smarty->fetch('tpl_polls_result_acc.html'); } //удаление конкретного результата if ($_GET['page'] == 'delete_acc'){ $id = $_GET['des']; //определяем какой опрос и какой человек $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ $id_us = $rez[1]['id_user']; $id_anketa = $rez[1]['id_anketa']; //удаляем результаты $sql_del = 'DELETE FROM '.$ST['dbpf'].'_anketa_answers WHERE id_anketa = "'.$id_anketa.'" AND id_user = "'.$id_us.'" '; $rez_del = $DB->QUR_SEL($sql_del); save_logs("Удаление результатов опроса ".$id_us." по анкете ".$id_anketa); } $message = 'Результаты пользователя успешно удалены'; $link = '/polls/result/'.$id_anketa.'/'; $smarty->assign('message', $message); $smarty->assign('link', $link); $maincontent = $smarty->fetch('tpl_refresh.html'); } //ВОПРОСЫ АНКЕТЫ-ОПРОСА if ($_GET['page'] == 'questions'){ $id = $_GET['des']; //добавляем вопрос в анкету if (isset($_POST['add_question'])){ $id_anketa = $_POST['id_anketa']; $name = addslashes($_POST['name']); $type = $_POST['type']; $options = addslashes($_POST['options']); $status = $_POST['status']; $sql = 'INSERT INTO '.$ST['dbpf'].'_anketa_questions (id_anketa, name, type, options, status) VALUES ("'.$id_anketa.'", "'.$name.'", "'.$type.'", "'.$options.'", "'.$status.'")'; $rez = $DB->QUR($sql); $id_last = mysql_insert_id(); $message = 'Вопрос успешно добавлен'; save_logs('Для опроса добавлен новый вопрос №'.$id_last); } //берем информацию о самом опросе $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa WHERE id = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ $anketa = $rez[1]; } //берем сами вопросы в данном опросе $questions = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_questions WHERE id_anketa = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach($rez as $key => $val) if ($key){ $val['options'] = nl2br($val['options']); $questions[] = $val; } } /****/ $smarty->assign('message', $message); $smarty->assign('anketa', $anketa); $smarty->assign('questions', $questions); $maincontent = $smarty->fetch('tpl_polls_questions.html'); } //ПРОХОЖДЕНИЕ ОПРОСА if ($_GET['page'] == 'taking'){ //человек отправил результаты опроса if (isset($_POST['taking_poll'])){ $id_anketa = $_POST["anketa"]; $date_create = date("U"); $quest = $_POST['quest']; foreach ($quest as $key => $val){ $sql = 'INSERT INTO '.$ST['dbpf'].'_anketa_answers (id_user, id_question, date_create, value, id_anketa) VALUES ("'.$id_user.'", "'.$key.'", "'.$date_create.'", "'.$val.'", "'.$id_anketa.'")'; $rez = $DB->QUR($sql); $message = 'Опрос успешно пройден'; save_logs('Пользователь прошел анкету-опрос №'.$id_anketa); } //print_r($_POST['quest']); } //если не выбран конкретный опрос, то отображаем все if (!isset($_GET['des'])){ //когда не выбран конкретный опрос, то отображать в списке все опросы. Каждый опрос доступен для прохождения только один раз! $polls = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa WHERE status = 1 '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['date_create'] = date('d.m.Y', $val['date_create']); $polls[] = $val; } } //также отображаем информацию о группе $gruppa = get_grupp($student_info['id_grupp']); //теперь определяем какой семестр выводить //для этого первым делом узнаем курс $kurs = courseOfGruppa($student_info['id_grupp']); //теперь смотрим какой месяц //если март-апрель, то смотрим нечетный семестр текущего курса. Если октябрь-ноябрь - то смотрим четный семестр прошлого курса if (date('m') == 3) $sem = $kurs * 2 - 1; elseif (date('m') == 4) $sem = $kurs * 2 - 1; elseif (date('m') == 5) $sem = $kurs * 2 - 1; elseif (date('m') == 6) $sem = $kurs * 2 - 1; elseif (date('m') == 10) $sem = ($kurs-1) * 2; elseif (date('m') == 11) $sem = ($kurs-1) * 2; elseif (date('m') == 12) $sem = ($kurs-1) * 2; else $sem = 0; //если человек уже проходил опрос, то также выводим ошибку $sql = 'SELECT * FROM '.$ST['dbpf'].'_teacher_evalution_polls WHERE id_grupp = "'.$student_info['id_grupp'].'" AND id_user = "'.$student_info['id_user'].'" AND semestr = "'.$sem.'" GROUP BY id_user '; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
';exit(); //SELECT * FROM acs_teacher_evalution_polls WHERE id_grupp = "286" AND id_user = "20661" AND semestr = "6" GROUP BY id_user //Array( // [0] => 1 // [1] => Array( // [id] => 254889 // [id_grupp] => 286 // [id_user] => 20661 // [predmet] => Безопасность жизнедеятельности // [teacher] => Цикуниб Саньят Моссовна // [critery_num] => Преподаватель доступно и ясно объясняет материал // [mark] => 10 // [date_create] => 1699588406 // [semestr] => 6 // ) //) if ($rez) {//количество прохождений $count_poll_teach = $rez[0]; $data_poll_teach = $rez[1]; } else { $count_poll_teach = 0; $data_poll_teach = array(); } //***** $smarty->assign('count_poll_teach', $count_poll_teach); $smarty->assign('data_poll_teach', $data_poll_teach); $smarty->assign('kurs', $kurs); $smarty->assign('sem', $sem); $smarty->assign('gruppa', $gruppa); $smarty->assign('polls', $polls); } else{ //если выбран конкретный $id = $_GET['des']; //смотрим какая форма обучения $fo = $student_info['fo']; //смотрим какие есть ограничения по форме обучения $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa WHERE id = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); $access_fo = $rez[1]['access_fo']; $access = 0; //переменная доступа - изначально доступ есть if ($access_fo == "0"){ } else{ if ($access_fo != $fo) $access = 1; } //$access = $fo.';'.$access_fo; //определяем, проходил ли опрос пользователь уже $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_answers WHERE id_anketa = "'.$id.'" AND id_user = "'.$id_user.'" '; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
';exit(); //SELECT * FROM acs_anketa_answers WHERE id_anketa = "6" AND id_user = "20786" //Array( // [0] => 64 // [1] => Array( [id] => 127922 [id_user] => 20786 [id_question] => 82 // [date_create] => 1699600414 [value] => да [id_anketa] => 6 ) // [2] => Array ( [id] => 127923 [id_user] => 20786 [id_question] => 83 // [date_create] => 1699600414 [value] => да [id_anketa] => 6 ) if ($rez){ $count = $rez[0]; $answers = $rez; }else{ $answers = array(); } $questions = array(); //список вопросов $sql = 'SELECT * FROM '.$ST['dbpf'].'_anketa_questions WHERE id_anketa = "'.$id.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['option'] = explode("\n", $val['options']); $questions[] = $val; } } /***/ $smarty->assign('id', $id); $smarty->assign('access', $access); //переменная доступа $smarty->assign('count', $count); $smarty->assign('answers', $answers); $smarty->assign('questions', $questions); } /*общие поля*/ $smarty->assign('message', $message); $maincontent = $smarty->fetch('tpl_polls_taking.html'); } //ОЦЕНКА ДИСЦИПЛИНЫ И ПРЕПОДАВАТЕЛЯ //ДЕКАНАТ - список групп факультета if ($_GET['page'] == 'teachers'){ //добавление преподавателя-дисциплины в список для группы if (isset($_POST['add_teacher_ev'])){ $grupp = (int) $_POST['grupp']; $sem = (int) $_POST['sem']; $predmet = $_POST['predmet']; $teacher = $_POST['teacher']; $sql = 'INSERT INTO '.$ST['dbpf'].'_teacher_evalution (id_grupp, semestr, predmet, teacher) VALUES ("'.$grupp.'", "'.$sem.'", "'.$predmet.'", "'.$teacher.'") '; $rez = $DB->QUR($sql); save_logs('Оценка дисциплины и преподавателя - добавление нового пункта для опроса'); header('Location: /polls/teachers/'.$grupp.'/'.$sem.'/'); exit; } if (!isset($_GET['des'])){ //не выбрана конкретная группа, с которой работаем $fakultet = $_SESSION['user']['teacher']['fakultet']; $str_grupps = ''; //формируем список групп факультета $grupps = array(); //$sql = 'SELECT gr.* FROM '.$ST['dbpf'].'_grupp as gr WHERE gr.kurs < 7 AND NOT (gr.name LIKE "%выпуск%") ORDER BY gr.sokr, gr.kurs '; $sql = 'SELECT gr.*, gr.id as id_grupp, fac.* FROM '.$ST['dbpf'].'_grupp as gr, '.$ST['dbpf'].'_faculties as fac WHERE fac.name="'.$fakultet.'" AND gr.id_facult=fac.id AND gr.kurs < 7 AND NOT (gr.sokr LIKE "%выпуск%") ORDER BY gr.sokr, gr.kurs '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $str_grupps .= $val['id_grupp'].','; $grupps[] = $val; } } //ТАКЖЕ СМОТРИМ ОБЩЕЕ КОЛИЧЕСТВО ПРОШЕДШИХ ДАННЫЙ ОПРОС ПО ФАКУЛЬТЕТУ ПО СЕМЕСТРАМ (ЧЕТНЫЙ-НЕЧЕТНЫЙ) $str_grupps .= '0'; $sql_count = 'SELECT * FROM '.$ST['dbpf'].'_teacher_evalution_polls WHERE id_grupp IN ('.$str_grupps.') GROUP BY id_user'; $rez_count = $DB->QUR_SEL($sql_count); /***/ $smarty->assign('grupps', $grupps); //$smarty->assign('count_fakultet', $rez_count[0]); $smarty->assign('count_fakultet', $rez_count[0]); } else{ //выбрана группа и по логике - семестр $id = $_GET['des']; $sem = $_GET['sem']; $gruppa = get_grupp($id); //достаем список дисциплин данной группы за выбраный семестр из ведомостей //надо ограничить список годом обучения! $sql_year = ''; if(date('m')>=9) $data_c1 = mktime(0,0,0,8,1,date('Y')); else $data_c1 = mktime(0,0,0,8,1,date('Y')-1); $sql_year = ' AND st.date_create>='.$data_c1.' '; $disc = array(); $sql = 'SELECT st.*, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.id_grupp = "'.$id.'" AND liq.id_stat = st.id AND liq.semestr = "'.$sem.'"'.$sql_year.' GROUP BY liq.name'; $rez = $DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
'; exit(); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['teacher'] = get_user($val['id_teacher']); $disc[] = $val; } } //а теперь список дисциплин, которые деканат вбил вручную $disc2 = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_teacher_evalution WHERE id_grupp = "'.$id.'" AND semestr = "'.$sem.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $disc2[] = $val; } } //список преподавателей актуальный $teachers = all_teachers(); /****/ $smarty->assign('teachers', $teachers); $smarty->assign('disc', $disc); $smarty->assign('disc2', $disc2); $smarty->assign('sem', $sem); $smarty->assign('gruppa', $gruppa); $smarty->assign('id', $id); } $maincontent = $smarty->fetch('tpl_polls_teachers.html'); } //критерии $critery = array(); $critery[] = 'Преподаватель доступно и ясно объясняет материал'; $critery[] = 'Преподаватель заранее объяснил критерии, используемые при оценке экзамена/зачета'; $critery[] = 'Доброжелательность, тактичность преподавателя со студентами'; $critery[] = 'Преподаватель объясняет значение данной дисциплины для будущей профессии'; $critery[] = 'Преподаватель умеет организовать интересную дискуссию по теме занятия'; $critery[] = 'Возможность внеаудиторного общения по учебным и научным вопросам'; $critery[] = 'Полезность курса (дисциплины) для расширения кругозора и разностороннего развития'; $critery[] = 'Сложность курса (дисциплины) для успешного прохождения (1 - очень легкий, 10 - курс очень сложный)'; //СТУДЕНТУ - прохождение опроса по оценке преподавателя if ($_GET['page'] == 'teachersPoll'){ //СТУДЕНТ ПРОШЕЛ ОПРОС ПО ПРЕПОДАМ if (isset($_POST['polls_teachers'])){ //echo '
'; print_r($_POST); echo '
'; $id_user = $_SESSION['user']['id']; //кто проходил $id_grupp = (int) $_POST['gruppa']; $sem = (int) $_POST['sem']; foreach ($_POST['mark_teacher'] as $key => $val){ //echo $key; //дисциплина foreach ($val as $key2 => $val2){ //echo $key2; //преподаватель foreach ($val2 as $key3 => $val3){ //echo $key3; //критерий //echo $val3; //оценка //добавляем в БД запись с оценкой по определенному предмету и преподавателю за семестр, а также дату прохождения опроса $sql = 'INSERT INTO '.$ST['dbpf'].'_teacher_evalution_polls (`id_grupp`, `id_user`, `predmet`, `teacher`, `critery_num`, `mark`, `date_create`, `semestr`) VALUES ("'.$id_grupp.'", "'.$id_user.'", "'.$key.'", "'.$key2.'", "'.$key3.'", "'.$val3.'", "'.date("U").'", "'.$sem.'") '; $rez = $DB->QUR($sql); } } } save_logs('Прохождение студентом опроса Оценка дисциплины и преподавателя'); header('Location: /polls/taking/'); exit; } /*****/ $id = $_GET['des']; //группа $sem = $_GET['sem']; //семестр //достаем список дисциплин данной группы за выбраный семестр из ведомостей $disc = array(); $sql = 'SELECT st.*, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.id_grupp = "'.$id.'" AND liq.id_stat = st.id AND liq.semestr = "'.$sem.'" GROUP BY liq.name'; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['teacher'] = get_user($val['id_teacher']); $disc[] = $val; } } //а теперь список дисциплин, которые деканат вбил вручную $disc2 = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_teacher_evalution WHERE id_grupp = "'.$id.'" AND semestr = "'.$sem.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $disc2[] = $val; } } /*****/ $smarty->assign('disc', $disc); $smarty->assign('disc2', $disc2); $smarty->assign('sem', $sem); $smarty->assign('critery', $critery); $smarty->assign('id', $id); $maincontent = $smarty->fetch('tpl_polls_taking_teach.html'); } //ДЕКАНАТУ - просмотр результатов опроса Оценка преподавателя и дисциплины if ($_GET['page'] == 'teachersResult'){ $id = $_GET['des']; //группа $sem = $_GET['sem']; //семестр $gruppa = get_grupp($id); //достаем список дисциплин данной группы за выбраный семестр из ведомостей $disc = array(); $sql = 'SELECT st.*, liq.* FROM '.$ST['dbpf'].'_statement as st, '.$ST['dbpf'].'_liquidation as liq WHERE st.id_grupp = "'.$id.'" AND liq.id_stat = st.id AND liq.semestr = "'.$sem.'" GROUP BY liq.name'; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $val['teacher'] = get_user($val['id_teacher']); $disc[] = $val; } } //а теперь список дисциплин, которые деканат вбил вручную $disc2 = array(); $sql = 'SELECT * FROM '.$ST['dbpf'].'_teacher_evalution WHERE id_grupp = "'.$id.'" AND semestr = "'.$sem.'" '; $rez = $DB->QUR_SEL($sql); if ($rez){ foreach ($rez as $key => $val) if ($key){ $disc2[] = $val; } } $resultats = array(); //массив результатов - собираем преподов и все критерии оценки //в начале перебираем дисциплины из ведомостей foreach ($disc as $key => $val) { $val['fio'] = $val['teacher']['fio']; $val['predmet'] = $val['name']; $val['sum_mark'] = 0; //сумма баллов //проходимся по критериям и записываем оценки foreach ($critery as $key_cr => $crit){ $val[$key_cr+1] = 0; //находим средний балл $sql_sb = 'SELECT AVG(mark) as avg_mark FROM '.$ST['dbpf'].'_teacher_evalution_polls WHERE id_grupp = "'.$id.'" AND predmet = "'.$val['predmet'].'" AND teacher = "'.$val['fio'].'" AND critery_num = "'.$crit.'" AND semestr = "'.$sem.'" '; $rez_sb = $DB->QUR_SEL($sql_sb); $val[$key_cr+1] = $rez_sb[1]['avg_mark']; //записываем в критерий $val['sum_mark'] += $val[$key_cr+1]; //echo '
'; print_r($rez_sb[1]); echo '
'; } $resultats[] = $val; } //теперь вручную вбитое foreach ($disc2 as $key => $val) { $val['fio'] = $val['teacher']; //$val['predmet'] = $val['name']; $val['sum_mark'] = 0; //сумма баллов //проходимся по критериям и записываем оценки foreach ($critery as $key_cr => $crit){ $val[$key_cr+1] = 0; //находим средний балл $sql_sb = 'SELECT AVG(mark) as avg_mark FROM '.$ST['dbpf'].'_teacher_evalution_polls WHERE id_grupp = "'.$id.'" AND predmet = "'.$val['predmet'].'" AND teacher = "'.$val['fio'].'" AND critery_num = "'.$crit.'" AND semestr = "'.$sem.'" '; $rez_sb = $DB->QUR_SEL($sql_sb); $val[$key_cr+1] = $rez_sb[1]['avg_mark']; //записываем в критерий $val['sum_mark'] += $val[$key_cr+1]; //echo '
'; print_r($rez_sb[1]); echo '
'; } $resultats[] = $val; } //также считаем, сколько студентов приняло участие в данном опросе $sql = 'SELECT * FROM '.$ST['dbpf'].'_teacher_evalution_polls WHERE id_grupp = "'.$id.'" AND semestr = "'.$sem.'" GROUP BY id_user '; $rez = $DB->QUR_SEL($sql); $count = $rez[0]; /*******/ $smarty->assign('count', $count); $smarty->assign('gruppa', $gruppa); $smarty->assign('resultats', $resultats); $smarty->assign('sem', $sem); $smarty->assign('critery', $critery); $smarty->assign('id', $id); $maincontent = $smarty->fetch('tpl_polls_teachers_result.html'); } ?>