Dear Friends,

This code isn't able to score the php quiz, 

Through command prompt  I am able to write questions to database table, 
another php script can display questions in the database and 
ways to edit and delete the same

However, when I submit the quiz I dont get score of the quiz.
I am running mysql 4.3 and php 4
Any guidance with regard to this code I have added dump file of mysql as well.


I tried moodle, calorina from open sourceforge didn't work. or 
Any guidance for developing, online quiz management system or scripts.

For present application, Code and table structure is pasted below.

Advice, please
-----------------------------------------------------------

<?php

include 'menufile.php';
?>
<?php

//copyright widgetmonkey.com 2001

include("contentdb.php");

$display = mysql_query("SELECT * FROM $table ORDER BY id",$db);
 
if (!$submit) {


 echo "<form method=post action=$PHP_SELF>";
 echo "<table border=0>";

 while ($row = mysql_fetch_array($display)) {

 $id = $row["id"];
 $question = $row["question"];
 $opt1 = $row["opt1"];
 $opt2 = $row["opt2"];
 $opt3 = $row["opt3"];
 $answer = $row["answer"];

 echo "<tr><td colspan=3><br><b>$question</b></td></tr>";
 echo "<tr><td>$opt1 <input type=radio name=q$id 
value=\"$opt1\"></td><td>$opt2 <input type=radio name=q$id 
value=\"$opt2\"></td><td>$opt3 <input 
type=radio name=q$id value=\"$opt3\"></td></tr>";

 }

 echo "</table>";
 echo "<input type='submit' value='See how you did' name='submit'>";
 echo "</form>";

}

elseif ($submit) 

{

 $score = 0;
 $total = mysql_num_rows($display);
  while ($result = mysql_fetch_array($display)) 
  
  
  {
  
   $answer = $result["answer"];
   $q = $result["q"];
   
  if ($$q == $answer) 
  {
  $score++; 
  }
 
 }
 
 echo "<p align=center><b>You scored $score out of $total</b></p>";
 echo "<p>";
 
 if   ($score == $total) {
 echo "Congratulations! You got every question right!";
 }
 elseif ($score/$total < 0.34) {
 echo "Oh dear. Not the best score, but don't worry, it's only a quiz.";
 }
 elseif ($score/$total > 0.67) {
 echo "Well done! You certainly know your stuff.";
 }
 else {
 echo "Not bad - but there were a few that caught you out!";
 }

echo "</p>";

echo "<p>Here are the answers:";

echo "<table border=0>";
$display = mysql_query("SELECT * FROM $table ORDER BY id",$db);
while ($row = mysql_fetch_array($display)) {

$question = $row["question"];
$answer = $row["answer"];
$q = $row["q"];

echo "<tr><td><br>$question</td></tr>";

if ($$q == $answer) 
  {
  echo "<tr><td>&raquo;you answered ${$q}, which is correct</td></tr>";
  }
elseif ($$q == "") {
echo "<tr><td>&raquo;you didn't select an answer. The answer is 
$answer</td></tr>";
}
else {
echo "<tr><td>&raquo;you answered ${$q}. The answer is $answer</td></tr>";
}

}
echo "</table></p>";



}

?>
----------------------------------------------------
MYSQL table structure
__________________________________

Database changed
mysql> describe quiz;
+----------+------------+------+-----+---------+----------------+
| Field    | Type       | Null | Key | Default | Extra          |
+----------+------------+------+-----+---------+----------------+
| id       | tinyint(4) |      | PRI | NULL    | auto_increment |
| q        | text       |      |     |         |                |
| question | text       |      |     |         |                |
| opt1     | text       |      |     |         |                |
| opt2     | text       |      |     |         |                |
| opt3     | text       |      |     |         |                |
| answer   | text       |      |     |         |                |
+----------+------------+------+-----+---------+----------------+
7 rows in set (0.07 sec)

mysql>

------------------------------------------------------------------------------
------------------

 

Reply via email to