} $balls = $result->fetchAll(PDO::FETCH_ASSOC); foreach ($myPost as $val) { // Убрано после новости о том, что можно удалять балл //if($val['ball']==='') continue; if ($val['ball'] === 'н') { $val['ball'] = -1; } $b = RPU::filterBy($balls, array('id_km' => $val['id_km'], 'numst' => $val['numst'])); if (!empty($b)) { if ($b['ball'] === $val['ball']) { continue; } $where = $val; unset($where['ball']); if ($val['ball'] === '') { if (!RPDB::delete('st_ball', $where)) { throw new Exception("Ошибка удаления бала"); } } else { if (!RPDB::update('st_ball', array('ball' => $val['ball']), $where)) { throw new Exception("Ошибка обновления баллов"); } } } else { //Вставить if (!RPDB::insert('st_ball', $val)) { throw new Exception("Ошибка добавления баллов"); } } }
if (!RPRole::getPermitOne('journal_edit')) { RPH::errorPage("Ошибка доступа"); } $myPost = json_decode(file_get_contents('php://input'), true); $link = $_GET['id_tup_d']; $MsSQL = RPDB::connect(); //Получаем существующие баллы в БД для измененных студентов $result = $MsSQL->prepare('select * from started where id_tup_d = ? and numst IN (' . RPU::plas(array_keys($myPost)) . ')'); if (!$result->execute(array_merge(array($link), array_keys($myPost)))) { throw new Exception("Ошибка получения приступил/не приступил"); } $pr = $result->fetchAll(PDO::FETCH_ASSOC); foreach ($myPost as $numst => $flag) { $b = RPU::filterBy($pr, array('numst' => $numst)); if (!empty($b)) { //Обновить if ($flag === $b['flag']) { continue; } $where = array('id_tup_d' => $link, 'numst' => $numst); if (!RPDB::update('started', array('flag' => $flag), $where)) { throw new Exception("Ошибка обновления присупил/не приступил"); } } else { //Вставить $field = array('id_tup_d' => $link, 'numst' => $numst, 'flag' => $flag); if (!RPDB::insert('started', $field)) { throw new Exception("Ошибка добавления присупил/не приступил"); } } }