重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP+MYSQL+AJAX
创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目成都网站建设、做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元茅箭做网站,已为上家服务,为茅箭各地企业和个人服务,联系电话:18980820575
php显示一道题,点击一个答案 激活ajax访问mysql答案,返回对错进行加分并打开下一道题。
一:题目表
字段为:题目id,题目标题,题目类型(填空,多选,单选,问答等)
二:答案表
字段为: 表自增id, 题目ID,答案文字 (如选择题,一个题目id会对应多个答案)
三: 试卷表
字段为:表自增id, 试卷名称,题目ID,分数 (该题在该试卷的分数)
常规思路
表1(问题)
question
id(主键) text(问题内容) rightAnswer(正确答案)
表2(备选答案)
answer
id(主键) qid(对应的问题id) text(备选答案)
$sql="SELECT * FROM question";
$r = mysql_query($sql);
while($row = mysql_fetch_rows($r)){
//输出题干
echo $row[1];
$subsql="SELECT * FROM answer WHERE qid = '".$row[0]."'";
$subr = mysql_query($subsql);
while($subrow = mysql_fetch_rows($subr)){
//输出备选答案
echo subrow[2];
}
}
我相信这是比较主流的设计思路,希望的帮到你
至于比对答案的时候,有一种简单做法,你传回来的答案不是数组吗,将数据库正确答案以字符串形式输出,打散成数组,求2个数组的交集,根据交集数量判断正确个数
不懂欢迎追问
1、题库记录各种试题
2、试卷是按规则生成出的试题;
3、用户考试:用户 关联 试卷 及试题 ,计算得分
大致就可以了1
php里面有array_rand函数,你要是一道题一道题的读出来,或许也可以尝试一下。但是要是一下子都读出来,即便这个函数效率可以的话,随机取出id数组,查询 “where id in 数组” 就不如直接在数据库里随机抽取记录。
如何从数据表里随机抽取记录呢,想想办法还是有一些,就是不知道效率如何。有的是说用max_id*rand(),那一条一条抽取还是可以的。怎么批量随机抽取呢,可以试着排序,然后选取前500题,排序可以想办法用一些函数(选取一些执行效率高的),如何md5,sha1,这种。如果为了使结果更具有随机性,可以把字段值再与一个随机数运算一下。仅供参考。
========================
我想你还是用array_rand随机抽500个id存到数组,然后遍历数组吧。这样也避免了题目重复。在数据库里如果一次一条记录随机抽取,要考虑碰巧重复的问题。批量选取你就按上面我说的试试。
给你举个栗子吧,应该能看懂,
这是html:
form action="./test.php" method="post"
你喜欢什么语言?
br
input type="checkbox" name="yuyan[]" value="php"phpnbsp;nbsp;
input type="checkbox" name="yuyan[]" value="java"javanbsp;nbsp;
input type="checkbox" name="yuyan[]" value=".net".netnbsp;nbsp;
input type="checkbox" name="yuyan[]" value="js"jsnbsp;nbsp;
br
input type="submit" value="submit"
/form
前端效果:
这是php:
?php
$yuyan = $_POST['yuyan'];
echo 'pre';
var_dump($yuyan);
php接收数据后输出效果: