十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
方法1:使用session
广东网站建设公司创新互联,广东网站设计制作,有大型网站制作公司丰富经验。已为广东数千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的广东做网站的公司定做!
每次点下一题的时候,将当前题目的分数存入session的一个数组,
假设当前题目的分数为$score, 则$_SESSION['scores'][] = $score,
最后将$_SESSION['scores']中的所有分数加起来就行
方法2:使用页面get传参
每次点下一题的时候,将当前总分传到下一个页面,与下一个页面的得分相加
如 第一题是3分,页面为 test.php?q=1, 则第二题页面为 test.php?q=2score=3,
第二题得分为4分,总分就是 4+$_GET['score']=7,则第二题页面为 test.php?q=3score=7,
以此类推
php里面有array_rand函数,你要是一道题一道题的读出来,或许也可以尝试一下。但是要是一下子都读出来,即便这个函数效率可以的话,随机取出id数组,查询 “where id in 数组” 就不如直接在数据库里随机抽取记录。
如何从数据表里随机抽取记录呢,想想办法还是有一些,就是不知道效率如何。有的是说用max_id*rand(),那一条一条抽取还是可以的。怎么批量随机抽取呢,可以试着排序,然后选取前500题,排序可以想办法用一些函数(选取一些执行效率高的),如何md5,sha1,这种。如果为了使结果更具有随机性,可以把字段值再与一个随机数运算一下。仅供参考。
========================
我想你还是用array_rand随机抽500个id存到数组,然后遍历数组吧。这样也避免了题目重复。在数据库里如果一次一条记录随机抽取,要考虑碰巧重复的问题。批量选取你就按上面我说的试试。
客户端用JS的cookies保存答案/做个计时[]
弄个按纽,当时间到或按了按纽就直接提交所有答案到后台.
如果是单选就直接用字符串来表示.
后台分割POST过来的数据为数组和标准答案数组比较得到分数.
答案可以通过数据库保存.
数据表:
ID 问题 标准答案
ID 回答者 问题数组 标准答案数组 用户答案数组 分数
1、题库记录各种试题
2、试卷是按规则生成出的试题;
3、用户考试:用户 关联 试卷 及试题 ,计算得分
大致就可以了1