Jump to content

Helped need with processing a Multiple Choice Quiz script (php mysql)


gbelfast

Recommended Posts

I am pretty new to using php and mysql and am struggling to understand how to go about processing a multiple choice quiz script to check if the answer given by the user is right or wrong and give the user the final result . I understand how to write and process register pages and login scripts and the like but for some reason I just can't understand what i need to do for this type of script
So far my thinking has been 
 
1) When the page is submitted have a query that compares the answer selected to the answer in the database.
2) Have php variables for correct and and incorrect both initialised to 0 and which will change depending on the answers given.  
3) Use an if else statement similar to the code below to add up the score : -
  if($result['answer']==$_POST[$result['id']]){
               $correct_answer++;
      }else{
               $incorrect_answer++;
           }

4) Have a query that enters the person taking the quiz's grade in to the database. 
 
I would really appreciate it someone could give me some guidance for the best way to do this.  I have included below my code for selecting the questions form the database.     

 

 
<?php
 
 // Starts the session
session_start();
 
/*
*/
 
 
if (!isset($_SESSION['user_level']) or ($_SESSION['user_level'] != 0))
{
   header("Location: error_page.php");
   exit();
}
?>
<?php 
   
     require_once ('mysqli_connect.php'); 
     
$email_address = ['email_address'];
     $quizGradeBegan=("INSERT INTO learner_grade_db( email_address, score, )VALUES ('$email_address',0) ");
$result=@mysqli_query($dbcon, $submittedAnswerQuery);
 
 
if(isset($_SESSION['email_address'])){
?>
 
 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Q-Quiz: Learner Homepage</title>
<link rel="stylesheet" href="sdnt.css" />
</head>
<body>
      
<div class="wrapper">  <!-- Start of wrapper div -->
<div class="header"> <!-- Start of header div -->
<h1>e-Quiz: <br> Learner Homepage</h1>
 
 
          <?php 
              //Makes a call to includes/leaner_nav.php in order to show The Learner Navigation Bar
     require_once("includes/learner_nav.php");
 //Makes a call to includes/welcome_name.php in order to show the Learners name. 
              require_once("includes/welcome_name.php");
 /*Makes a call to includes/current_date in order to shows the current date.
     Will appear in the Day Month Year Format.*/
   require_once("includes/current_date.php");
 
           ?>
         
<!-- Shows the Change text size images -->
         <div id="textSizer"><!-- Start of the textSizer div -->
           <img id="smallStyler"  class="textSize" src="imgs/fontSmall.jpg"  height="18" width="18" alt="Smallest" />
           <img id="mediumStyler" class="textSize" src="imgs/fontMedium.jpg" height="18" width="18" alt="Default"  />
           <img id="largeStyler"  class="textSize" src="imgs/fontLarge.jpg"  height="18" width="18" alt="Biggest"  />
        </div> <!-- End of textsizer div -->
     </div><!-- End of Header div -->
 
   
    <div class="article"> <!-- Start of the article div -->
<?php
 
 
$query=("SELECT  question_id, question, distractor_1, distractor_2, distractor_3, distractor_4 FROM multiplechoice_db ORDER BY RAND() LIMIT 3 " );
$result = @mysqli_query ($dbcon, $query); // Run the query.
while($row = mysqli_fetch_array($result, MYSQL_BOTH)):?>
<br>
 <form  action="gradepage.php" method="post">
<?php echo $row['question_id'];?>
<br>
<?php echo $row['question'];?>
<br>
 
                    <input type="radio" value="1" id=' distractor  <?php echo $row['question_id'];?>' name ='<?php echo $row['question_id'];?>'/><?php echo $row['distractor_1'];?>
                    <br>
                    <input type="radio" value="2" id=' distractor  <?php echo $row['question_id'];?>'  name ='<?php echo $row['question_id'];?>'/><?php echo $row['distractor_2'];?>
                    <br>
                    <input type="radio" value="3" id=' distractor  <?php echo $row['question_id'];?>'  name ='<?php echo $row['question_id'];?>'/><?php echo $row['distractor_3'];?>
                    <br>
                    <input type="radio" value="4" id=' distractor  <?php echo $row['question_id'];?>'  name ='<?php echo $row['question_id'];?>'/><?php echo $row['distractor_4'];?>
                    <br>
<?php endwhile;?>
<p>  <input id="submit" type="submit" name="submit" value="Click To Submit Completed Quiz "></>
            </div> <!-- End of the article div -->
 
<div class="aside"> <!-- Start of the aside div -->
<ul class="nav2">
   
          <?php 
     //Makes a call to includes/leanersidebar1.php in order to show The Learner Sidebar
     require_once("includes/learnersidebar1.php");
 ?>
   </ul>
 <br><br><br><br><br>
 
 
</div> <!-- End of the aside div -->
 
<div class="footer "><!-- Start of the footer div -->
 
 <?php
      //Makes a call to includes/footer.php in order to show the Footer 
       require_once("includes/footer.php"); 
 ?>
 
</div><!-- End of the footer div -->
</div><!-- End of the wrapper div -->
</body>
<html>
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.