Beispiel #1
0
 public function ikut_ujian()
 {
     $this->cek_aktif();
     //var def session
     $a['sess_level'] = $this->session->userdata('admin_level');
     $a['sess_user'] = $this->session->userdata('admin_user');
     $a['sess_konid'] = $this->session->userdata('admin_konid');
     //var def uri segment
     $uri2 = mysql_real_escape_string($this->uri->segment(2));
     $uri3 = mysql_real_escape_string($this->uri->segment(3));
     $uri4 = mysql_real_escape_string($this->uri->segment(4));
     //var post from json
     $p = json_decode(file_get_contents('php://input'));
     $a['detil_user'] = $this->db->query("SELECT * FROM m_siswa WHERE id = '" . $a['sess_konid'] . "'")->row();
     if ($uri3 == "simpan_satu") {
         $p = json_decode(file_get_contents('php://input'));
         $update_ = "";
         for ($i = 1; $i < $p->jml_soal; $i++) {
             $_tjawab = "opsi_" . $i;
             $_tidsoal = "id_soal_" . $i;
             $jawaban_ = empty($p->{$_tjawab}) ? "" : $p->{$_tjawab};
             $update_ .= "" . $p->{$_tidsoal} . ":" . $jawaban_ . ",";
         }
         $update_ = substr($update_, 0, -1);
         $this->db->query("UPDATE tr_ikut_ujian SET list_jawaban = '" . $update_ . "' WHERE id_tes = '{$uri4}' AND id_user = '******'sess_konid'] . "'");
         echo $this->db->last_query();
         exit;
     } else {
         if ($uri3 == "simpan_akhir") {
             $p = json_decode(file_get_contents('php://input'));
             $jumlah_soal = $p->jml_soal;
             $jumlah_benar = 0;
             $jumlah_bobot = 0;
             $update_ = "";
             for ($i = 1; $i < $p->jml_soal; $i++) {
                 $_tjawab = "opsi_" . $i;
                 $_tidsoal = "id_soal_" . $i;
                 $jawaban_ = empty($p->{$_tjawab}) ? "" : $p->{$_tjawab};
                 $cek_jwb = $this->db->query("SELECT bobot, jawaban FROM m_soal WHERE id = '" . $p->{$_tidsoal} . "'")->row();
                 if ($cek_jwb->jawaban == $jawaban_) {
                     $jumlah_benar++;
                     $jumlah_bobot = $jumlah_bobot + $cek_jwb->bobot;
                 }
                 $update_ .= "" . $p->{$_tidsoal} . ":" . $jawaban_ . ",";
             }
             $update_ = substr($update_, 0, -1);
             $nilai = $jumlah_benar / ($jumlah_soal - 1) * 100;
             $this->db->query("UPDATE tr_ikut_ujian SET jml_benar = " . $jumlah_benar . ", nilai_bobot = " . $jumlah_bobot . ", nilai = '" . $nilai . "', list_jawaban = '" . $update_ . "', status = 'N' WHERE id_tes = '{$uri4}' AND id_user = '******'sess_konid'] . "'");
             $a['status'] = "ok";
             $this->j($a);
             exit;
         } else {
             $cek_sdh_selesai = $this->db->query("SELECT id FROM tr_ikut_ujian WHERE id_tes = '{$uri4}' AND id_user = '******'sess_konid'] . "' AND status = 'N'")->num_rows();
             //sekalian validasi waktu sudah berlalu...
             if ($cek_sdh_selesai < 1) {
                 //ambil detil soal
                 $cek_detil_tes = $this->db->query("SELECT * FROM tr_guru_tes WHERE id = '{$uri4}'")->row();
                 $q_cek_sdh_ujian = $this->db->query("SELECT id FROM tr_ikut_ujian WHERE id_tes = '{$uri4}' AND id_user = '******'sess_konid'] . "'");
                 $d_cek_sdh_ujian = $q_cek_sdh_ujian->row();
                 $cek_sdh_ujian = $q_cek_sdh_ujian->num_rows();
                 if ($cek_sdh_ujian < 1) {
                     $soal_urut_ok = array();
                     $q_soal = $this->db->query("SELECT id, gambar, soal, opsi_a, opsi_b, opsi_c, opsi_d, opsi_e, '' AS jawaban FROM m_soal WHERE id_mapel = '" . $cek_detil_tes->id_mapel . "' ORDER BY RAND() LIMIT " . $cek_detil_tes->jumlah_soal)->result();
                     $i = 0;
                     foreach ($q_soal as $s) {
                         $soal_per = new stdClass();
                         $soal_per->id = $s->id;
                         $soal_per->soal = $s->soal;
                         $soal_per->gambar = $s->gambar;
                         $soal_per->opsi_a = $s->opsi_a;
                         $soal_per->opsi_b = $s->opsi_b;
                         $soal_per->opsi_c = $s->opsi_c;
                         $soal_per->opsi_d = $s->opsi_d;
                         $soal_per->opsi_e = $s->opsi_e;
                         $soal_per->jawaban = $s->jawaban;
                         $soal_urut_ok[$i] = $soal_per;
                         $i++;
                     }
                     $soal_urut_ok = $soal_urut_ok;
                     $list_id_soal = "";
                     $list_jw_soal = "";
                     if (!empty($q_soal)) {
                         foreach ($q_soal as $d) {
                             $list_id_soal .= $d->id . ",";
                             $list_jw_soal .= $d->id . ":,";
                         }
                     }
                     $list_id_soal = substr($list_id_soal, 0, -1);
                     $list_jw_soal = substr($list_jw_soal, 0, -1);
                     $waktu_selesai = tambah_jam_sql($cek_detil_tes->waktu);
                     $this->db->query("INSERT INTO tr_ikut_ujian VALUES (null, '{$uri4}', '" . $a['sess_konid'] . "', '{$list_id_soal}', '{$list_jw_soal}', 0, 0, 0, NOW(), ADDTIME(NOW(), '{$waktu_selesai}'), 'Y')");
                     $a['detil_soal'] = $this->db->query("SELECT tr_guru_tes.*, m_guru.nama AS namaGuru, m_mapel.nama AS namaMapel \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM tr_guru_tes \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE tr_guru_tes.id = '{$uri4}'")->row();
                     $a['detiltes'] = $this->db->query("SELECT * FROM tr_ikut_ujian WHERE id_tes = '{$uri4}' AND id_user = '******'sess_konid'] . "'")->row();
                     $a['data'] = $soal_urut_ok;
                 } else {
                     $q_ambil_soal = $this->db->query("SELECT * FROM tr_ikut_ujian WHERE id_tes = '{$uri4}' AND id_user = '******'sess_konid'] . "'")->row();
                     $urut_soal = explode(",", $q_ambil_soal->list_jawaban);
                     $soal_urut_ok = array();
                     for ($i = 0; $i < sizeof($urut_soal); $i++) {
                         $pc_urut_soal = explode(":", $urut_soal[$i]);
                         $pc_urut_soal1 = empty($pc_urut_soal[1]) ? "''" : "'" . $pc_urut_soal[1] . "'";
                         $ambil_soal = $this->db->query("SELECT *, {$pc_urut_soal1} AS jawaban FROM m_soal WHERE id = '" . $pc_urut_soal[0] . "'")->row();
                         $soal_urut_ok[] = $ambil_soal;
                     }
                     $a['detil_soal'] = $this->db->query("SELECT tr_guru_tes.*, m_guru.nama AS namaGuru, m_mapel.nama AS namaMapel \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFROM tr_guru_tes \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN m_guru ON tr_guru_tes.id_guru = m_guru.id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tINNER JOIN m_mapel ON tr_guru_tes.id_mapel = m_mapel.id\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE tr_guru_tes.id = '{$uri4}'")->row();
                     //$soal_urut_ok = $this->db->query("SELECT * FROM m_soal ORDER BY RAND()")->result();
                     $a['detiltes'] = $q_ambil_soal;
                     $a['data'] = $soal_urut_ok;
                 }
             } else {
                 redirect('adm/sudah_selesai_ujian/' . $uri4);
             }
             //echo var_dump($a);
             $this->load->view('aaa_ikut_ujian', $a);
         }
     }
 }
Beispiel #2
0
 public function index()
 {
     echo tambah_jam_sql(145);
 }