首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在这段代码中混洗三个变量?

如何在这段代码中混洗三个变量?
EN

Stack Overflow用户
提问于 2013-01-17 22:51:13
回答 2查看 618关注 0票数 1

我有一个小问题,我试着做一个在线测试,但我需要打乱答案,所以1是好答案,2,3是坏答案,但所有时间看起来都是a=1,b=2,c=3,我想要一些随机化的东西,比如a=2,b=3,c=1,我该怎么做?

代码如下:

代码语言:javascript
复制
$result = mysql_query( "SELECT * FROM questions ORDER BY RAND() LIMIT 0,10");
while ($row = mysql_fetch_array($result)) {
    $rows[] = $row;
    $question_id = $row['question_id'];
    $question = $row['question'];
    $answare_good = $row['answare_good'];
    $answare_badi = $row['answare_badi'];
    $answare_badii = $row['answare_badii'];
    $number += 1;
    echo '<tr>
    <td rowspan="3" width="10">'.$number.'</td>
    <td rowspan="3" width="70%"><p>'.$question.'</p></td>
    <td width="30%" height="33%"><input type="checkbox" name="a1" id="a1">
    '.$answare_good.'</td>
    </tr>
    <tr>
    <td width="30%" height="33%"><input type="checkbox" name="a2" id="a2">
    '.$answare_badi.'</td>
    </tr>
    <tr>
    <td  width="30%" height="33%"><input type="checkbox" name="a3" id="a3">
    '.$answare_badii.'</td>
    </tr>';

我尝试了$answare_good & $answare_badi & $answare_badii数组的方法,但是失败了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-17 23:04:06

下面的代码怎么样:

代码语言:javascript
复制
$result = mysql_query("SELECT * FROM questions ORDER BY RAND() LIMIT 0,10");
while ($row = mysql_fetch_array($result)) {
    $rows[] = $row;
    $question_id = $row['question_id'];

    $answers = array(
        array('a1', 'val1', $row['answare_good']),
        array('a2', 'val2', $row['answare_badi']),
        array('a3', 'val3', $row['answare_badii']),
    );
    shuffle($answers);

    $number += 1;

    echo '<tr>
    <td rowspan="3" width="10">'.$number.'</td>
    <td rowspan="3" width="70%"><p>'.$row['question'].'</p></td></tr>';
    foreach($answers as $answer) {
        echo '<tr><td width="30%" height="33%"><input type="checkbox" name="'.$answer[0].'" id="'.$question_id.'-'.$answer[0].'" value="'.$answer[1].'" />'.$answer[2].'</td></tr>';
    }
}

您还必须指定复选框的值才能获得选中答案的值...

也要移动到PDO或至少是mysqli_*函数,因为mysql_*函数现在已被弃用……

编辑:还考虑使用radio而不是checkbox -假设用户只选择一个答案。如果您想让用户选择多个答案(或所有三个答案),那么checkbox是可以的。

票数 2
EN

Stack Overflow用户

发布于 2013-01-17 22:58:14

如果你需要有可用的变量,你可以在随机过程中额外提取

代码语言:javascript
复制
$answers = array(
 'opt1' => 'answer1',
 'opt2' => 'answer2',
 'opt3' => 'answer3'
);

shuffle($answers);
extract($answers);

//访问变量

代码语言:javascript
复制
echo $opt1;
echo $opt2;
echo $opt3;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14381703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档