在过去的几天里,我在项目中创建了一个测验场景,遇到了这个问题。 我想问随机问题,但是当我使用 rand(( 函数时,这些问题正在重复。 我还发现,由于它是在同一页面上完成的,并且每次页面刷新时, 再次选择随机数,从而导致此缺陷!所以我考虑将最后一个随机que_id的值存储在会话中并生成如下所示的查询:
enter code here <?php session_start();$jsqla=mysql_query("select que_id from mst_que");$jfeta=mysql_fetch_assoc($jsqla);session_start();$id=array($jfeta['id$_SESSION['id'][] = $id;$rs=mysql_query("SELECT * FROM `mst_que` WHERE que_id NOTIN ('id') ORDER BY RAND() ")
请帮我解决这个问题。我只想创建一个会话数组,在其中存储先前生成的随机数并在查询中使用它,以便不再重复。请
将其存储在变量中并从问题数组中取消设置:
function get_question($questions)
{
$question = rand($questions);
$questionKey = array_search($question, $questions);
unset($questions[$questionKey]);
return $question;
}
尝试创建一个数组,然后将其分配给任何会话变量,例如:
$quizQuestions[] = $questionId;
$_SESSION['question'] = $quizQuestions;
如果您想更新该值,只需获取它并分配新值并在同一变量中再次更新它:
$quizQuestions = $_SESSION['question'];
$quizQuestions[] = $questionId;
$_SESSION['question'] = $quizQuestions;
确保首先启动会话,将以下代码添加到此脚本的开头:
if(!isset($_SESSION)) {
session_start();
}