session_start(); mysql_connect("localhost","user","pass"); mysql_select_db("nama_db"); //load jawaban secara acak if(!isset($_SESSION['soal'])){ $query = mysql_query("select * from from tb_soal order by rand()"); while($soal = mysql_fetch_array($query)){ $_SESSION['soal'][] = $soal; } } $page = isset($_GET['page']) ? (int)$_GET['page'] : 0; // simpan jawaban user ke session selama masih ada soal if($_POST){ $_SESSION['jawaban'][$_POST['id_soal']] = $_POST['jawab']; } if($page >= count($_SESSION['soal'])){ header("Location: hasil.php"); //tampilkan hasil exit; } echo '<form method="post" action="?page='.($page+1).'">'; if(isset($_SESSION['soal'][$page])){ echo '<p>'.$_SESSION['soal'][$page]['soal'].'</p>'; $query = mysql_query("select * from tb_jawaban where '".$_SESSION['soal'][$page]['id_soal']."' order by rand()"); while($jawaban = mysql_fetch_array($query)){ echo '<input type="radio" name="jawab" value="'.$jawaban['id_jawaban'].'" id="jawab-'.$jawaban['id_jawaban'].'"/> '.$jawaban['jawaban'].'<br/>'; echo '<input name="id_soal" value="'.$_SESSION['soal'][$page]['id_soal'].'"/>'; } } echo '<input type="submit" value="Next"/>'; echo '</form>';
session_start(); mysql_connect("localhost","user","pass"); mysql_select_db("nama_db"); //cek kebenaran jawaban $nilai = 0; foreach($_SESSION['jawaban'] as $idSoal => $idJawaban){ $cek = mysql_query("select * from tb_jawaban where id_soal='".intval($idSoal)."' and id_jawaban='".intval($idJawaban)."' and benar='1'"); if(mysql_num_rows($cek) > 0){ $nilai += 1; } } echo 'Hasil:'.$nilai;
tb_soal
________________________________________________
| id_soal | soal | id_gambar |
------------------------------------------------
| 1 |soal 1 | null |
------------------------------------------------
tb_jawaban
________________________________________________________
| id_jawaban | id_soal | jawaban | benar |
--------------------------------------------------------
| 2 | 1 | jawaban 1 | 1 |
--------------------------------------------------------
| 3 | 1 | jawaban 2 | 0 |
--------------------------------------------------------
| 4 | 1 | jawaban 3 | 0 |
--------------------------------------------------------
| 5 | 1 | jawaban 4 | 0 |
--------------------------------------------------------