在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);
答案 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循环来获得所需数量的问题。