Home > Backend Development > PHP Tutorial > Example of online test answering using PHP+MySQL

Example of online test answering using PHP+MySQL

coldplay.xixi
Release: 2023-04-09 14:30:01
forward
3081 people have browsed it

Example of online test answering using PHP+MySQL

[Related learning recommendations: jQuery Tutorial, PHP programming (video), mysql tutorial

This example mainly introduces how to use jQuery PHP MySQL To realize online test questions, including dynamic reading of questions, background scoring after answering the questions, and returning the answer results.

##Read the answer list:

$sql = "select * from quiz order by id asc"; 
$query = mysql_query($sql); 
while ($row = mysql_fetch_array($query)) { 
 $answers = explode('###', $row['answer']); 
 $arr[] = array( 
   'question' => $row['id'] . '、' . $row['question'], 
   'answers' => $answers 
 ); 
} 
$json = json_encode($arr);
Copy after login

Generate the answer list:

By traversing the list, the answering function is generated:

$(function(){ 
  $('#quiz-container').jquizzy({ 
    questions: <?php echo $json;?>, //试题信息 
    sendResultsURL: &#39;data.php&#39; //结果处理地址 
  }); 
});
Copy after login

When the user finishes typing the question and clicks the "Complete" button, an ajax. php sends an Ajax interactive request, and ajax.php will compare the correct answer based on the user's answer, and then give the user's score.

$data = $_REQUEST[&#39;an&#39;]; 

$answers = explode(&#39;|&#39;,$data); 
$an_len = count($answers)-1; //题目数 

$sql = "select correct from quiz order by id asc"; 

$query = mysql_query($sql); 
$i = 0; 
$score = 0; //初始得分 
$q_right = 0; //答对的题数 
while($row=mysql_fetch_array($query)){ 
  if($answers[$i]==$row[&#39;correct&#39;]){ 
    $arr[&#39;res&#39;][] = 1; 
    $q_right += 1; 
  }else{ 
    $arr[&#39;res&#39;][] = 0; 
  } 
  $i++; 
} 
$arr[&#39;score&#39;] = round(($q_right/$an_len)*100); //总得分 
echo json_encode($arr);
Copy after login

quiz table structure:

CREATE TABLE IF NOT EXISTS `quiz` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `question` varchar(100) NOT NULL, 
 `answer` varchar(500) NOT NULL, 
 `correct` tinyint(2) NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; 
 
-- 
-- 转存表中的数据 `quiz` 
-- 
 
INSERT INTO `quiz` (`id`, `question`, `answer`, `correct`) VALUES 
(1, &#39;罗马帝国曾一度辉煌,令人神往,故有“条条大陆通罗马”一说。那么,今天你是怎样理解这一谚语的准确含义的?&#39;, &#39;A.入乡随俗 ###B.四通八达 ###C.殊途同归 ###D.流连忘返&#39;, 3), 
(2, &#39;找出不同类的一项:&#39;, &#39;A.斑马 ###B.军马 ###C.赛马 ###D.骏马 ###E.驸马&#39;, 5), 
(3, &#39; 蜡烛在空气中燃烧,蜡烛质量逐渐变小。这说明&#39;, &#39;A.物质可以自生自灭###B.发生的不是化学变化###C.不遵守质量守恒定律###D.生成物为气体,散发到空气中了&#39;, 4), 
(4, &#39;以下哪位歌手没有获得过《我是歌手》总冠军?&#39;, &#39;A.羽泉###B.韩磊###C.邓紫棋###D.韩红&#39;, 3), 
(5, &#39;下列哪个标签不是HTML5中的新标签?&#39;, &#39;A.<article>###B.<canvas>###C.<section>###D.<sub>&#39;, 4);
Copy after login

If you want to know more related learning, please pay attention to the

php training column!

The above is the detailed content of Example of online test answering using PHP+MySQL. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:jb51.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template