Site icon T4Tutorials.com

Source Code of Online Quiz in PHP

Source Code of Online Quiz in PHP

Here, we will make a web-based application for MCQs type quiz.

For making the application, we needed to develop the following files;

  1. dbcoonect.php
  2. index.php
  3. retrievequiz.php
  4. retriveresults.php
  5. submitquiz.php

dbcoonect.php

This file contains all code about dbconnect.php.

<?php
$host="localhost";
$user="root";
$pass="";
$db="quizdb";
$con = new mysqli($host, $user, $pass, $db)
	or die ('Could not connect to the database server' . mysqli_connect_error());
?>

index.php

This file contains all code about index.php.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Quiz Application</title>
</head>
<body>
	<div style="text-align:center;">
		<p style=" font-size: 400%; ">MCQs Application</p>
	</div>
	<div style="text-align:center;">
		Enter your name: &nbsp; <input type="text" id="username"> &nbsp; &nbsp;
		<button type="button" onclick="takeQuiz()" id="btnTake">&nbsp;Take Quiz&nbsp;</button>
	</div>
	
	<div style="text-align:center;" id="quizsection"></div>
	<div style="text-align:center;" id="resultsection"></div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
retreiveResults();
var userName;
function takeQuiz(){
	var name = $("#username").val();
	$("#quizsection").replaceWith('<div style="text-align:center;" id="quizsection"></div>');
	if (name){
		$("#resultsection").hide();
		userName = name;
		$.ajax({
			url: 'retreivequiz.php',
			type: 'POST',
			data: {value: 'take', name: userName },
			success: function (result) {
				$("#quizsection").replaceWith(result);
			}
		});
	}
	else {
		retreiveResults();
		$("#resultsection").show();
	}
	
}

function retreiveResults(){
	$.ajax({
		url: 'retreiveresults.php',
		type: 'POST',
		data: {value: 'result'},
		success: function (result) {
			$("#resultsection").replaceWith(result);
		}
	});
}
</script>
</body>
</html>

retrievequiz.php

This file contains all code about retrieving the quiz.

<?php

require('dbconnect.php');
$no = 1;
if (isset($_POST['value'])){
	$take = $_POST['value'];
	$username = $_POST['name'];
	if (!empty($take) || !empty($username)){
		echo '<div style="text-align:center;" id="quizsection">';
		echo '<form action="submitquiz.php" method="POST">';
		echo '<input type="hidden" name="nameofuser" value="'.$username.'">';
		// retreive mcq questions and their options
		$sqlMCQs = "SELECT * FROM questions";
		$resultMCQs = mysqli_query($con, $sqlMCQs);
		while ($rowMCQs = mysqli_fetch_assoc($resultMCQs)){
			$id = $rowMCQs['id'];
			$question = $rowMCQs['question'];
			$op1 = $rowMCQs['op1'];
			$op2 = $rowMCQs['op2'];
			$op3 = $rowMCQs['op3'];
			$answer = $rowMCQs['answer'];
			
			echo '<br><div style="margin: auto; border-radius: 25px; border: 2px solid black; padding: 20px; width: 800px">';
			echo '<h3>Question #'.$no.'</h3><br>';
			echo '<p style=" font-size: 150%; ">'.$question.'</p><br>';
			echo '<h3>Options</h3><br>';
			echo '<input type="radio" name="'.$id.'" value="'.$op1.'" id="'.$op1.'" checked>'.$op1.' &nbsp; &nbsp;';
			echo '<input type="radio" name="'.$id.'" value="'.$op2.'" id="'.$op2.'">'.$op2.' &nbsp; &nbsp;';
			echo '<input type="radio" name="'.$id.'" value="'.$op3.'" id="'.$op3.'">'.$op3.' &nbsp; &nbsp;';
			echo '</div>';
			$no++;
		}
		echo '<br><button style="font-size: 120%;" name="submit" type="submit" id="btnSubmit">&nbsp;Submit Quiz&nbsp;</button>';
		echo '</form>';
		echo '</div>';
	}
	
}

retriveresults.php

This file contains all code about retrieving the results.

<?php
require('dbconnect.php');

$no = 1;
if (isset($_POST['value'])){
	echo '<div style="text-align:center;" id="resultsection"><p style="color: red;">Enter your name and click Take Quiz button!</p><br>';
	echo '<table style="width:30%; border-collapse: collapse; margin: auto;"><thead><tr><th style="border: 1px solid black; border-collapse: collapse; ">#</th><th style="border: 1px solid black; border-collapse: collapse; ">Name</th><th style="border: 1px solid black; border-collapse: collapse; ">Score</th></tr></thead><tbody>';
	$sqlScore = "select * from user";
	$resultScore = mysqli_query($con, $sqlScore);
	while ($rowScore = mysqli_fetch_assoc($resultScore)){
		$name = $rowScore['name'];
		$score = $rowScore['score'];
		echo '<tr><td style="border: 1px solid black; border-collapse: collapse; ">'.$no.'</td><td style="border: 1px solid black; border-collapse: collapse; ">'.$name.'</td><td style="border: 1px solid black; border-collapse: collapse; ">'.$score.'</td></tr>';
		$no++;
	}
	echo '</tbody></table>';
	echo '</div>';
}

submitquiz.php

This file contains all code about submitting the quiz.

<?php
require('dbconnect.php');

if (isset($_POST['submit'])){
	$nameofuser = $_POST['nameofuser'];
	$totalQuestions = 0;
	$correctAnswers = 0;
	foreach($_POST as $key => $value) {
        if($key == 'nameofuser'){
			
        }else if ($key == 'submit') {
			
		}
        else{
            $tempAnswer = $_POST[$key];
            // count total questions and correct answers
			$sqlAnswer = "select  count(*) count from questions where id = '$key' and answer = '$tempAnswer'";
			$resultAnswer = mysqli_query($con, $sqlAnswer);
			$rowAnswer = mysqli_fetch_assoc($resultAnswer);
			$numAnswer = $rowAnswer['count'];
			if ($numAnswer < 1){
				// wrong answer
			}
			else {
				// correct answer
				$correctAnswers++;
			}
			$totalQuestions++;
        }  
    }
	// Store score in db
	$sqlSubmit = "insert into user (name, score) values ('$nameofuser', '$correctAnswers/$totalQuestions')";
	if (mysqli_query($con, $sqlSubmit)){
		header("Location: index.php?status=succes");
	} else {
		header("Location: index.php?status=error");
	}
}

Database View

Here, there is a database view for you your better understanding that how you can make a database for online quiz application.

Exit mobile version