如何在php中添加随机化行值而不重复

时间:2018-04-04 19:20:09

标签: php mysql

从过去的几天开始,我在项目中创建了一个测验场景。我想要随机问题但是当我使用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() ")

请帮帮我。我只想创建一个会话数组,我想存储以前生成的随机数,并在查询中使用它,以便不再重复。请

2 个答案:

答案 0 :(得分:0)

尝试创建一个数组,然后将其分配给任何会话变量,例如:

$quizQuestions[] = $questionId;
$_SESSION['question'] = $quizQuestions;

如果您想要更新该值,只需获取它并分配新值并再次在同一变量中更新它:

$quizQuestions = $_SESSION['question'];
$quizQuestions[] = $questionId;
$_SESSION['question'] = $quizQuestions;

确保首先启动会话,将以下代码添加到此脚本的最开头:

if(!isset($_SESSION)) {
    session_start();
}

答案 1 :(得分:0)

将其存储在变量中,并从问题数组中取消设置:

function get_question($questions)
{
    $question = rand($questions);
    $questionKey = array_search($question, $questions);

    unset($questions[$questionKey]);

    return $question;
}
相关问题