在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);发布于 2018-05-14 12:45:39
在查询中使用关键字DISTINCT。
$result=executeQuery("select DISTINCT * from question where testid=".$_SESSION['testid']." and qnid=".$_SESSION['qn']." order by rand();");此外,mysql_*也已弃用。关注@Magnus的评论
发布于 2018-05-14 12:58:55
不要在查询中使用"ORDER BY RAND“,而是抓取所有可能的问题。将问题放入数组后,使用shuffle()函数(http://php.net/manual/en/function.shuffle.php)随机化问题。然后,您需要做的就是使用for循环来获取所需数量的问题。
https://stackoverflow.com/questions/50323075
复制相似问题