首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php查询中第二次停止显示相同的数据?

如何在php查询中第二次停止显示相同的数据?
EN

Stack Overflow用户
提问于 2018-09-08 05:49:14
回答 1查看 55关注 0票数 0

本人尝试开发考试管理系统。我不想要相同的问题或相同的id不显示第二次或其他任何时候考试用户。如何给出这个条件呢?

我的功能是:

代码语言:javascript
复制
public function qustionShow($question, $limit=4){
    $show = $this->conn->query("select * from question where cat_id ='$question' ORDER BY RAND() LIMIT $limit");
    while ($row=$show->fetch_array(MYSQLI_ASSOC)){
        $this->qus[]=$row;
    }
    return $this->qus;  
}
EN

回答 1

Stack Overflow用户

发布于 2018-09-08 06:34:06

您需要跟踪哪些问题已经被提出。如果您不希望仅在会话中再次选择问题,则可以将问题id保存到会话中。

您可以将一个数组初始化为会话$_ session‘question _ asked’= array();然后一旦提出问题,您将

代码语言:javascript
复制
array_push([THE QUESTION ID], $_SESSION['questions_asked']);

当然,对于提出的任何问题,都需要将问题ID替换为sql id。

请记住,您将需要修改您的查询,以说明会话中保存的所有内容。

如果您不希望它们再次显示,您将需要记录用户已经看到的问题,并可能需要将其永久存储在数据库中。

您可能会有一个表来为每个用户存储这些信息

user_question_asked

至少有这两列

user_id

因此,每次询问问题时,都要插入当前用户id和问题id。

那么您的查询可能是

代码语言:javascript
复制
SELECT * FROM question where cat_id ='$question' AND [QUESTION_ID] NOT IN 
(SELECT question_id from  user_question_asked where user_id [CURRENT USER's ID] 
) ORDER BY RAND() LIMIT $limit;`

希望这会有帮助,我不确定您的表/列结构是什么,但这些是我对解决这个问题的一些建议。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52230005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档