· 5 years ago · Mar 13, 2020, 05:28 AM
1<?php
2/*
3 www.mediatutorial.web.id
4 okie_eko_wardoyo@yahoo.com
5*/
6error_reporting(0);
7require_once "connect_to_mysql.php";
8//
9$action = isset($_GET['action'])?$_GET['action']:'';//edit, delete, add, generate, login_admin, edit_password
10
11switch($action){
12 case 'reset_quiz':
13 reset_quiz();
14 break;
15 case 'login_admin':
16 login_admin();
17 break;
18 case 'login_siswa':
19 login_siswa();
20 break;
21 case 'generate_siswa':
22 generate_siswa();
23 break;
24 case 'delete_siswa':
25 delete_siswa();
26 break;
27 case 'edit_siswa':
28 edit_siswa();
29 break;
30 case 'submit_hasil':
31 submit_hasil();
32 break;
33 case 'tambah_siswa':
34 tambah_siswa();
35 break;
36 case 'generate_xml':
37 generate_xml();
38 break;
39 case 'generate_item_xml':
40 generate_item_xml();
41 break;
42 case 'delete_question':
43 delete_question();
44 break;
45 case 'edit_question':
46 edit_question();
47 break;
48 case 'add_question':
49 add_question();
50 break;
51 case 'edit_password':
52 edit_password();
53 break;
54 case 'download_csv':
55 download_csv();
56 break;
57}
58
59function login_admin(){
60 $username = isset($_POST['admin_username'])?$_POST['admin_username']:'';
61 $password = isset($_POST['admin_password'])?$_POST['admin_password']:''; //sementara tidak usah diencripsi saja
62 //
63 $query = "SELECT COUNT(*) FROM `quiz_user` WHERE `username`='$username' AND `password`='$password'";
64 $result = mysql_query($query);
65 //
66 if(mysql_result($result,0) < 1)
67 echo 'login=failed';
68 else
69 echo 'login=success';
70}
71
72function login_siswa(){
73 $noinduk = isset($_POST['noinduk'])?$_POST['noinduk']:'';
74 //
75 $query = "SELECT COUNT(*) FROM `quiz_data_siswa` WHERE `no_induk`='$noinduk'";
76 $result = mysql_query($query);
77 //
78 if(mysql_result($result,0) < 1)
79 echo 'masuk=failed';
80 else{
81 $query_siswa = "SELECT * FROM `quiz_data_siswa` WHERE `no_induk`='$noinduk'";
82 $result_siswa = mysql_query($query_siswa);
83 while($row_siswa = mysql_fetch_array($result_siswa)){
84 $nama_siswa = $row_siswa['nama']; //bila lebih dari satu nama siswa
85 $id_siswa = $row_siswa['id'];
86 }
87 echo 'masuk=success&nama='.$nama_siswa.'&id_siswa='.$id_siswa;
88 }
89}
90
91function generate_siswa(){
92 $ret = "<?xml version=\"1.0\" ?>\n<xml>";
93 $sort = isset($_GET['sort'])?$_GET['sort']:'';
94 $query = 'SELECT * FROM `quiz_data_siswa` ORDER BY `id` ASC';
95 switch($sort){
96 case 'no_induk':
97 $query = "SELECT * FROM `quiz_data_siswa` ORDER BY `no_induk` ASC";
98 break;
99 case 'nama':
100 $query = "SELECT * FROM `quiz_data_siswa` ORDER BY `nama` ASC";
101 break;
102 case 'nilai':
103 $query = "SELECT * FROM `quiz_data_siswa` ORDER BY `nilai` DESC";
104 break;
105 }
106 //
107 $result = mysql_query($query);
108 $i = 0;
109 while($row_siswa = mysql_fetch_array($result)){
110 $nama_siswa = $row_siswa['nama']; //bila lebih dari satu nama siswa
111 $id_siswa = $row_siswa['id'];
112 $no_induk_siswa = $row_siswa['no_induk'];
113 $nilai_siswa = $row_siswa['nilai'];
114 $kelas_siswa = $row_siswa['kelas'];
115 //
116 $i++;
117 $ret .= "\t<person no=\"".$i."\" id=\"".$id_siswa."\" nama=\"".$nama_siswa."\" no_induk=\"".$no_induk_siswa."\" kelas=\"".$kelas_siswa."\" nilai=\"".$nilai_siswa."\"/>\n";
118 }
119 $ret .= "</xml>";
120 echo $ret;
121}
122
123function generate_xml($individual_id = ''){
124 /*$ret = "<?xml version=\"1.0\" ?>\n<soal>\n";*/
125 $ayu = [];
126 if($individual_id !='')
127 $query_pertanyaan = "SELECT * FROM `quiz_pertanyaan` WHERE `pertanyaan_id`='$individual_id'";
128 else
129 $query_pertanyaan = "SELECT * FROM `quiz_pertanyaan` ORDER BY `pertanyaan_id`";
130 //
131 $result_pertanyaan = mysql_query($query_pertanyaan);
132 while($row_pertanyaan = mysql_fetch_array($result_pertanyaan)) {
133 $xyz = [];
134 $xyz['pertanyaan_id'] = $row_pertanyaan['pertanyaan_id'];
135 $xyz['no_urut'] = $row_pertanyaan['no_urut'];
136 $xyz['soal'] = str_replace('"', "'", $row_pertanyaan['soal']);
137 $xyz['benar'] = $row_pertanyaan['benar'];
138 $xyz['pic'] = 'img/'.$row_pertanyaan['gambar'];
139
140 $pertanyaan_id = $row_pertanyaan['pertanyaan_id'];
141 $no_urut = $row_pertanyaan['no_urut'];
142 $soal = str_replace('"', "'", $row_pertanyaan['soal']);
143 $benar = $row_pertanyaan['benar'];
144 $pic = 'img/'.$row_pertanyaan['gambar'];
145
146 //
147 //$ret .="\t<number urutan=\"".$pertanyaan_id."\" foto=\"".$pic."\" benar=\"".$benar."\" pertanyaan_id=\"".$pertanyaan_id."\">\n\t\t<pertanyaan text=\"".$soal."\"/>\n";
148
149 //$ret .="\t</number>\n";
150
151 $ayu[] = $xyz;
152 }
153 //$ret .="</soal>";
154 // echo $ret;
155 echo "<pre>";
156 //var_dump($ayu);
157 echo "</pre>";
158
159 $ret = "<?xml version=\"1.0\" ?>\n<soal>\n";
160 $seed = rand(0,199);
161 $a_prime = 19;
162 $b_prime = 11;
163 $id = pow($seed,2) % ($a_prime*$b_prime);
164
165 for($i=0; $i<20; $i++){
166 if($i!==0)
167 $id = pow($id,2) % ($a_prime*$b_prime);
168
169 $ret .="\t<number urutan=\"".$ayu[$id]['pertanyaan_id']."\" foto=\"".$ayu[$id]['pic']."\" benar=\"".$ayu[$id]['benar']."\" pertanyaan_id=\"".$ayu[$id]['pertanyaan_id']."\">\n\t\t<pertanyaan text=\"".$val[$id]['soal']."\"/>\n";
170 $result_jawaban = mysql_query("SELECT * FROM `quiz_jawaban` WHERE `pertanyaan_id`='".$ayu[$id]['pertanyaan_id']."'");
171 while($row_jawaban = mysql_fetch_array($result_jawaban)) {
172 $jawaban_array = array(
173 'a' => $row_jawaban['a'],
174 'b' => $row_jawaban['b'],
175 'c' => $row_jawaban['c'],
176 'd' => $row_jawaban['d'],
177 'e' => $row_jawaban['e']
178 );
179 foreach($jawaban_array as $key => $value){
180 $ret .="\t\t<jawaban pilihan=\"".$key."\" text=\"".$value."\"/>\n ";
181 }
182 }
183 $ret .="\t</number>\n";
184 }
185
186 $ret .="</soal>";
187
188 echo $ret;
189}
190
191function generate_item_xml(){
192 $pertanyaan_id = isset($_GET['pertanyaan_id'])?(int)$_GET['pertanyaan_id']:'';
193 generate_xml($pertanyaan_id);
194}
195
196/////////////////////////////////
197//
198// untuk submit question nanti " DIUBAH MENJADI '
199//
200/////////////////////////////////
201
202//fungsi untuk edit item
203function edit_question(){
204 $pertanyaan_id = isset($_GET['pertanyaan_id'])?$_GET['pertanyaan_id']:'';
205 $no_urut = isset($_POST['no_urut'])?$_POST['no_urut']:'';
206 $pertanyaan = isset($_POST['pertanyaan'])?mysql_real_escape_string($_POST['pertanyaan']):'';
207 $jawaban_benar = isset($_POST['jawaban_benar'])?mysql_real_escape_string($_POST['jawaban_benar']):'';
208 $jawaban_a = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_a']):'';
209 $jawaban_b = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_b']):'';
210 $jawaban_c = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_c']):'';
211 $jawaban_d = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_d']):'';
212 $jawaban_e = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_e']):'';
213 //
214 $query_pertanyaan = "UPDATE `quiz_pertanyaan` SET `no_urut`='{$no_urut}' ,`soal`='{$pertanyaan}' ,`benar`='{$jawaban_benar}' WHERE `pertanyaan_id`='{$pertanyaan_id}'"; //query untuk update pertanyaan
215 $result_pertanyaan = mysql_query($query_pertanyaan);
216 if(!$result_pertanyaan)
217 die('Invalid query pertanyaan: ' . mysql_error());
218 else{
219 $query_jawaban = "UPDATE `quiz_jawaban` SET `a`='{$jawaban_a}' , `b`='{$jawaban_b}', `c`='{$jawaban_c}', `d`='{$jawaban_d}', `e`='{$jawaban_e}' WHERE `pertanyaan_id`='{$pertanyaan_id}'"; //query untuk update jawaban
220 $result_jawaban = mysql_query($query_jawaban);
221 if(!$result_jawaban)
222 die('Invalid query jawaban: ' . mysql_error());
223 else
224 echo "done";
225 }
226}
227
228//fungsi untuk add item
229function add_question(){
230 $no_urut = isset($_POST['no_urut'])?$_POST['no_urut']:'';
231 $pertanyaan = isset($_POST['pertanyaan'])?mysql_real_escape_string($_POST['pertanyaan']):'';
232 $jawaban_benar = isset($_POST['jawaban_benar'])?mysql_real_escape_string($_POST['jawaban_benar']):'';
233 $jawaban_a = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_a']):'';
234 $jawaban_b = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_b']):'';
235 $jawaban_c = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_c']):'';
236 $jawaban_d = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_d']):'';
237 $jawaban_e = isset($_POST['jawaban_a'])?mysql_real_escape_string($_POST['jawaban_e']):'';
238 //
239 $query_add_pertanyaan = "INSERT INTO `quiz_pertanyaan`(`no_urut`, `soal`, `benar`) VALUES ('{$no_urut}', '{$pertanyaan}', '{$jawaban_benar}' ) "; //query untuk add pertanyaan
240 $result_add_pertanyaan = mysql_query($query_add_pertanyaan);
241 if(!$result_add_pertanyaan)
242 die('Invalid query pertanyaan: ' . mysql_error());
243 else{
244 $last_inserted_id = mysql_insert_id();
245 //
246 $query_add_jawaban = "INSERT INTO `quiz_jawaban`(`pertanyaan_id`, `a`, `b`, `c`, `d`, `e`) VALUES ('{$last_inserted_id}', '{$jawaban_a}', '{$jawaban_b}', '{$jawaban_c}', '{$jawaban_d}', '{$jawaban_e}' )"; //query untuk add jawaban
247 $result_add_jawaban = mysql_query($query_add_jawaban);
248 if(!$result_add_jawaban)
249 die('Invalid query jawaban: ' . mysql_error());
250 else
251 echo "done";
252 }
253}
254
255function delete_question(){
256 $pertanyaan_id = isset($_POST['pertanyaan_id'])?$_POST['pertanyaan_id']:'';
257 $query_delete_pertanyaan = "DELETE FROM `quiz_pertanyaan` WHERE `pertanyaan_id`='{$pertanyaan_id}'";
258 $result_delete_pertanyaan = mysql_query($query_delete_pertanyaan);
259 if(!$result_delete_pertanyaan)
260 die('Invalid query delete pertanyaan: ' . mysql_error());
261 else{
262 $query_delete_jawaban = "DELETE FROM `quiz_jawaban` WHERE `pertanyaan_id`='{$pertanyaan_id}'";
263 $result_delete_jawaban = mysql_query($query_delete_jawaban);
264 if(!$result_delete_jawaban)
265 die('Invalid query delete jawaban: ' . mysql_error());
266 else
267 echo "done";
268 }
269}
270
271//fungsi untuk submit_hasil
272function submit_hasil(){
273 $id_siswa = isset($_POST['id_siswa'])?$_POST['id_siswa']:'';
274 $nilai = isset($_POST['nilai'])?$_POST['nilai']:'';
275 //
276 $query_submit = "UPDATE `quiz_data_siswa` SET `nilai`='{$nilai}' WHERE `id`='{$id_siswa}'";
277 $result = mysql_query($query_submit);
278 if(!$result)
279 die('Invalid query: ' . mysql_error());
280 else{
281 echo "done";
282 }
283}
284
285//fungsi untuk tambah siswa
286function tambah_siswa(){
287 $no_induk = isset($_POST['no_induk'])?$_POST['no_induk']:'';
288 $nama = isset($_POST['nama'])?$_POST['nama']:'';
289 $kelas = isset($_POST['kelas'])?$_POST['kelas']:'';
290 //
291 $query = "SELECT COUNT(*) FROM `quiz_data_siswa` WHERE `no_induk`='$no_induk'";
292 $result = mysql_query($query);
293 //
294 if(mysql_result($result,0) < 1){
295 //
296 $query_submit = "INSERT INTO `quiz_data_siswa` (`no_induk`,`nama`,`kelas`) VALUES ('{$no_induk}', '{$nama}', '{$kelas}')";
297 $result = mysql_query($query_submit);
298 if(!$result)
299 die('Invalid query: ' . mysql_error());
300 else{
301 echo "done";
302 }
303 }
304 else
305 echo "exist";
306}
307
308function delete_siswa(){
309 $siswa_id = isset($_POST['siswa_id'])?$_POST['siswa_id']:'';
310 $query_delete_siswa = "DELETE FROM `quiz_data_siswa` WHERE `id`='{$siswa_id}'";
311 $result_delete_siswa = mysql_query($query_delete_siswa);
312 if(!$result_delete_siswa)
313 die('Invalid query delete siswa: ' . mysql_error());
314 else{
315 echo "done";
316 }
317}
318
319//fungsi untuk edit item
320function edit_siswa(){
321 $siswa_id = isset($_POST['siswa_id'])?$_POST['siswa_id']:'';
322 $nama = isset($_POST['nama'])?mysql_real_escape_string($_POST['nama']):'';
323 $no_induk = isset($_POST['no_induk'])?mysql_real_escape_string($_POST['no_induk']):'';
324 $kelas = isset($_POST['kelas'])?mysql_real_escape_string($_POST['kelas']):'';
325 $nilai = isset($_POST['nilai'])?mysql_real_escape_string($_POST['nilai']):'';
326 //
327 $query_edit_siswa = "UPDATE `quiz_data_siswa` SET `nama`='{$nama}' ,`no_induk`='{$no_induk}' ,`kelas`='{$kelas}', `nilai`='{$nilai}' WHERE `id`='{$siswa_id}'"; //query untuk update pertanyaan
328 $result_edit_siswa = mysql_query($query_edit_siswa);
329 if(!$result_edit_siswa)
330 die('Invalid query edit siswa: ' . mysql_error());
331 else{
332 echo "done";
333 }
334}
335
336//fungsi ini untuk download data ke csv
337function download_csv(){
338 tablesql_to_csv('SELECT * FROM quiz_data_siswa');
339}
340
341function tablesql_to_csv($query, $filename='file.csv'){
342 //
343 header("Content-type: text/csv");
344 header("Content-Disposition: attachment; filename=".$filename);
345 header("Pragma: no-cache");
346 header("Expires: 0");
347 //
348 $fp = fopen('php://output', 'w');
349 $result = mysql_query($query);
350 $num_fields = mysql_num_fields($result); //berapa jumlah field
351
352 $headers = array(); //nanti berisi id, nomor induk, nama , kelas, nilai -> print_r($headers);
353 for ($i = 0; $i < $num_fields; $i++)
354 {
355 $headers[] = mysql_field_name($result , $i); //mysql_field_name digunakan untuk
356 }
357
358
359 fputcsv($fp, $headers); //terlebih dahulu mari kita masukkan fieldname
360 while ($row = mysql_fetch_row($result))
361 {
362 fputcsv($fp, array_values($row));
363 //print_r($row);
364 }
365 fclose($fp);
366}
367
368function reset_quiz(){
369 $query_drop = "DROP TABLE IF EXISTS `quiz_jawaban`, `quiz_pertanyaan`";
370
371 $query_1 = "CREATE TABLE IF NOT EXISTS `quiz_pertanyaan` (
372 `pertanyaan_id` int(11) NOT NULL AUTO_INCREMENT,
373 `no_urut` int(11) NOT NULL,
374 `soal` text NOT NULL,
375 `benar` varchar(2) NOT NULL,
376 PRIMARY KEY (`pertanyaan_id`)
377) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ";
378
379 $query_2 = "INSERT INTO `quiz_pertanyaan` (`pertanyaan_id`, `no_urut`, `soal`, `benar`) VALUES
380(1, 1, 'Tahukah anda tentang negara kita? Indonesia merupakan sebuah negara kepulauan yang sangat indah, berjajar dari sabang sampai dengan merauke. Dimanakah ibukota Indonesia?', 'a'),
381(2, 2, 'Siapakah nama presiden kita sekarang?', 'c'),
382(3, 3, 'Tanggal berapakah Indonesia merdeka?', 'a'),
383(4, 4, 'Siapakah nama Walikota Surakarta?', 'e'),
384(5, 5, 'Siapakah pelantun lagu Arjuna Mencari Cinta?', 'd')";
385
386 $query_3 = "
387CREATE TABLE IF NOT EXISTS `quiz_jawaban` (
388 `jawaban_id` int(11) NOT NULL AUTO_INCREMENT,
389 `pertanyaan_id` int(11) NOT NULL,
390 `a` text NOT NULL,
391 `b` text NOT NULL,
392 `c` text NOT NULL,
393 `d` text NOT NULL,
394 `e` text NOT NULL,
395 PRIMARY KEY (`jawaban_id`)
396) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ";
397
398 $query_4 = "INSERT INTO `quiz_jawaban` (`jawaban_id`, `pertanyaan_id`, `a`, `b`, `c`, `d`, `e`) VALUES
399 (1, 1, 'Jakarta', 'Bangkok', 'Singapura', 'Bandung', 'Jogjakarta'),
400 (2, 2, 'Yusuf Kalla', 'Ani Yudhoyono', 'Susilo Bambang Yudhoyono', 'Aburizal Bakrie', 'Megawati'),
401 (3, 3, '17 Agustus 1945', '17 September 1945', '17 Juni 1945', '17 Januari 1945', '18 Agustus 1945'),
402 (4, 4, 'Yusuf Kalla', 'Ani Yudhoyono', 'Susilo Bambang Yudhoyono', 'Aburizal Bakrie', 'Jokowi'),
403 (5, 5, 'Vierra', 'Sheila On Seven', 'Potret', 'Dewa', 'Armada')
404 ";
405
406 $query_5 = "CREATE TABLE IF NOT EXISTS `quiz_data_siswa` (
407`id` int(11) NOT NULL auto_increment,
408`no_induk` varchar(255) NOT NULL,
409`nama` varchar(255) NOT NULL,
410`kelas` varchar(255) NOT NULL,
411`nilai` varchar(255) NULL,
412PRIMARY KEY(`id`)
413) ENGINE=MyISAM DEFAULT CHARSET=utf8
414 ";
415
416 $query_6 = "INSERT INTO `quiz_data_siswa` (`id`, `no_induk`, `nama`, `kelas`, `nilai`) VALUES
417(1, '001', 'siswa_1', 'x1', '50'),
418(2, '002', 'siswa_2', 'x1', '22'),
419(3, '003', 'siswa_3', 'x1', NULL),
420(4, '004', 'eko wardoyo', 'x7', NULL),
421(5, '005', 'Jono ', 'x3', NULL),
422(6, '006', 'Lilis', 'x6', '40'),
423(7, '009', 'DIAZ', 'x4', NULL),
424(8, '008', 'cinta', 'xx', NULL),
425(9, '010', 'dian sastro', 'x2', NULL),
426(10, '011', 'edi supratman', 'x9', NULL),
427(11, '012', 'Tio', 'x4', NULL)
428 ";
429
430 mysql_query($query_drop);
431 mysql_query($query_1);
432 mysql_query($query_2);
433 mysql_query($query_3);
434 mysql_query($query_4);
435 mysql_query($query_5);
436 mysql_query($query_6);
437 echo "done";
438 //
439}
440?>