美文网首页
PHP答题系统抽题,已抽过题目不再抽取实现代码

PHP答题系统抽题,已抽过题目不再抽取实现代码

作者: 又闻风声 | 来源:发表于2021-04-17 12:00 被阅读0次

要求说明:

       本系统为答题系统,每天用户登录系统后进行答题,通过后台上传完毕题库后,每天用户上线抽取对应的题目进行作答,并获得相应的得分。

关键点:

        每天用户答题后,第二天及第N天来答题,不能在抽到之前已经抽到过的题目,用户个体之间相互独立,互不干扰。

解决方式:

        数据库构建抽题表:choutibiao,题库表:timu,两表之间通过timuid(题目id)进行关联,用户每天抽的题目在抽题表中进行相应的记录。

        使用sql查询not in条件进行对应的比对,确保同一用户不会抽到同样的题目。

示例代码:(注:后台框架为thinkphp框架,M方法为数据库操作方法,在此不做细述)

    $where['id'] = array('exp','not in (select timuid from choutibiao where uid="8")');

//在抽题表中查询用户id为8的用户已经抽过的题目,并设置查询条件为not in,如果要查询包含的数据,则使用in进行条件选择

    $chouti=M('timu')->where($where)->limit(1)->order('rand()')->field("id")->select();

//在题目表中查询排除上面已经抽过的题后的题目,并随即取出一题,这里可根据实际情况进行逻辑变动

    var_dump($chouti);die;

//打印显示查看结果

总结:

         通过in和not in的条件查询限制,解决系统中包含与未包含的情况。

相关文章

网友评论

      本文标题:PHP答题系统抽题,已抽过题目不再抽取实现代码

      本文链接:https://www.haomeiwen.com/subject/evpulltx.html