在php在线考试系统中使用rand使用顺序时,问题重复出现

时间:2018-05-14 04:24:37

标签: php mysql

在php在线考试系统中使用rand使用顺序时,问题重复出现

if(isset($_SESSION['stdname'])){
    $result=executeQuery("select stdanswer,answered from studentquestion where stdid=".$_SESSION['stdid']." and testid=".$_SESSION['testid']." and qnid=".$_SESSION['qn'].";");
    $r1=mysql_fetch_array($result);
    $result=executeQuery("select * from question where testid=".$_SESSION['testid']." and qnid=".$_SESSION['qn']."order by rand();");
    $r=mysql_fetch_array($result);

2 个答案:

答案 0 :(得分:0)

在查询中使用关键字DISTINCT

$result=executeQuery("select DISTINCT * from question where testid=".$_SESSION['testid']." and qnid=".$_SESSION['qn']." order by rand();");

也不推荐使用mysql_ *。关注@Magnus的评论

答案 1 :(得分:0)

而不是使用" ORDER BY RAND"在查询中,抓住所有可能的问题。一旦您将问题放入数组中,请使用shuffle()函数(http://php.net/manual/en/function.shuffle.php)随机化问题。然后你需要做的就是使用for循环来获得所需数量的问题。