如何使用php随机化内容?

约翰·琼斯

我正在写一个测验,从数据库中提取问题。它随机排列问题,但是当前正确的答案始终是最后一个答案。我将如何重写答案,以便将正确答案随机放置在选择中。我在while循环中考虑过for循环,但不确定如何编写

代码如下:

<?php
$sql = 'SELECT * FROM quizquestions ORDER BY rand() LIMIT 5';
$result = $db->query($sql); ?>


        <?php 
            while($row = $result->fetch_assoc())
            {?>
                <div class="questions">
                    <p><?php echo $row['Question'] ?></p>
                    <p><input type="radio" name="<?php echo $row['Ans1Name'] ?>" /><?php echo $row['Ans1'] ?></p>
                    <p><input type="radio" name="<?php echo $row['Ans2Name'] ?>" /><?php echo $row['Ans2'] ?></p>
                    <p><input type="radio" name="<?php echo $row['Ans3Name'] ?>" /><?php echo $row['Ans3'] ?></p>
                    <p><input type="radio" name="<?php echo $row['CorrectAnsName'] ?>" /><?php echo $row['CorrectAns'] ?></p>
                </div>
            <?php }?>

更新

我已经走得更远,并且正在检查分数

我的问题是如何检查所有字段是否都已填写,因为我正在使用此代码

<form action="quiz_submitted.php" method="POST">
            <?php $keys = array('Ans1','Ans2','Ans3','CorrectAns');
                    while ($row = $result->fetch_assoc()) 
                    {
                        shuffle($keys);
                        printf('<div class="questions">');
                        printf('<p>%s</p>', $row['Question']);
                            foreach ($keys as $k) 
                            {
                                printf('<p><input type="radio" name="%s" value="%s" />%s</p>', $row['QuesName'], $row[$k.'Value'], $row[$k]);
                            }
                         printf('</div>');
                    }
            ?>
            <input type="submit" name="quiz" value="Get Score!" style="margin-left: 475px;" />
            </form>

如何定位$ _POST数组中的名称?我尝试使用

if(isset($_POST['quiz'])) {
    if(!isset($_POST[$row['QuesName']])) {
        die('Please answer all questions');
    }
}

但它每次都会杀死该页面。

破破烂烂的

您应该考虑您的数据库模型,可以添加一个引用表来存储所有答案,并用标记标记正确答案。

使用像现在这样的数据库模型,您将被限制为每个问题x个答案(与您为之准备的列一样多)。

但是,对于这个现有的数据库模型,我建议像这样解决问题(将数组混合混洗):

$sql = 'SELECT * FROM quizquestions ORDER BY rand() LIMIT 5';
$result = $db->query($sql);
$keys = array(
    'Ans1',
    'Ans2',
    'Ans3',
    'CorrectAns'
);
while ($row = $result->fetch_assoc()) {
    shuffle($keys);
    printf('<div class="questions">');
    printf('<p>%s</p>', $row['Question']);
    foreach ($keys as $k) {
        printf('<p><input type="radio" name="%s" />%s</p>', $row[$k.'Name'], $row[$k]);
    }
    printf('</div>');
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何随机化按钮的内容(或位置)

来自分类Dev

如何从数组中随机化单元格内容

来自分类Dev

如何在函数中随机化某些内容?

来自分类Dev

如何从数组中随机化单元格内容

来自分类Dev

PHP区块随机化

来自分类Dev

如何随机化点击

来自分类Dev

如何随机化JSON

来自分类Dev

如何使用ACF将PHP中的URL列表随机化?

来自分类Dev

如何在PHP中随机化数组

来自分类Dev

php - 如何随机化数组中的项目

来自分类Dev

如何使用随机化器使平台彼此远离

来自分类Dev

PHP将数组随机化

来自分类Dev

如何随机化repeatAction计数?

来自分类Dev

如何随机化列顺序的子集

来自分类Dev

如何将帖子随机化

来自分类Dev

如何随机化EJS变量的顺序

来自分类Dev

如何随机化列表中的函数?

来自分类Dev

如何使onclick函数随机化?

来自分类Dev

如何随机化来自seq的输出?

来自分类Dev

如何制作列表随机化器

来自分类Dev

如何随机化参数中的对象?

来自分类Dev

如何随机化字符串?

来自分类Dev

如何随机化程序的窗口标题?

来自分类Dev

使用python随机化csv文件

来自分类Dev

使用typedef随机化结构

来自分类Dev

使用JavaScript随机化html标签

来自分类Dev

如何随机化数组C#中的所有全部内容

来自分类Dev

Excel 2013如何在多个工作表中引用数据+随机化表内容?

来自分类Dev

如何使用Google Appscript将Google表单中的Answers(随机选项顺序)随机化?