php实现题库随机出题,php题库编程题

发布时间:2022-11-25

本文目录一览:

  1. PHP考试系统怎么实现在同一页面提交后,实现随机出题,并保证提交后,不再随机,要求试题和答案保持一致
  2. 题库有600题,我想随机选其中的100道,这100道不能重复, 算法
  3. 用phpmysql做一个题库系统,随机抽取五百题左右生成考试卷,最有效率的做法是什么?
  4. PHP考试系统怎么实现随机出卷,并且提交是同一页面,提交后给出题目与对应答案的对错情况。主要是怎么在
  5. PHP 考试系统怎么生成随机试题,求代码写法.以选择题为例说明一下就行,假如从10个里抽3个,怎么在提交之
  6. 用PHP做一个答题系统。求救啊~~~~

PHP考试系统怎么实现在同一页面提交后,实现随机出题,并保证提交后,不再随机,要求试题和答案保持一致

  • session 保存答过的题目 ID。
  • 每次选题前,先从 session 中取出已答题目 ID,与所有题目 ID 做一个差集(array_diff())。
  • 新的题目从这个差集中随机选取。
  • 试题和答案的对应关系通过题目 ID 关联。

题库有600题,我想随机选其中的100道,这100道不能重复, 算法

  • 将 600 题放在数组中,调用 shuffle() 函数将数组打乱,取前 100 项即可。
  • 打乱算法示例:
for ($i = 0; $i < 600; ++$i) {
    $a = $myarray[$i];
    $j = rand($i, 599);
    $myarray[$i] = $myarray[$j];
    $myarray[$j] = $a;
}

用php+mysql做一个题库系统,随机抽取五百题左右生成考试卷,最有效率的做法是什么?

  • 使用 array_rand() 随机抽取 500 个 ID,然后查询 WHERE id IN (数组)
  • 或者在数据库中使用随机排序,例如:
SELECT * FROM table ORDER BY RAND() LIMIT 500;
  • 如果并发量大,建议将题目 ID 存入数组,随机选取后查询数据库。

PHP考试系统怎么实现随机出卷,并且提交是同一页面,提交后给出题目与对应答案的对错情况。主要是怎么在

  • 并发访问量不大时,生成题目时同时生成答案,并将答案写入 $_SESSION
  • 并发访问量大时,为每道题目分配 ID,提交时将 ID 和答案一并提交,根据 ID 到数据库中比对。
  • 如果是练习系统,可将答案加密后写入 Cookie,提交时返回服务器验证。

PHP 考试系统怎么生成随机试题,求代码写法.以选择题为例说明一下就行,假如从10个里抽3个,怎么在提交之

示例代码如下:

<?php
$query = mysql_query("SELECT * FROM 表名");
$results = mysql_fetch_row($query);
$rand = array_rand($results, 3); // 取出随机的三个键值
$questions = array($results[$rand[0]], $results[$rand[1]], $results[$rand[2]]); // 放入新数组
?>
<form action="当前页面" method="post">
<?php foreach ($questions as $value): ?>
    <?php $options = explode(";", $value['options']); ?>
    <?= $value['questions'] ?>
    <?php for ($i = 0; $i < count($options); $i++): ?>
        <input type="radio" name="<?= $value['id'] ?>" value="<?= chr(65 + $i) ?>" /> <?= $options[$i] ?><br />
    <?php endfor; ?>
    ----------------------------------------<br />
<?php endforeach; ?>
<input type="submit" value="提交" />
</form>
<?php
if (!empty($_POST)) {
    foreach ($_POST as $key => $data) {
        $question_id = $key;
        $user_choice = $data;
        $result = mysql_query("SELECT * FROM 表名 WHERE id = $key AND right_answer = '$data'");
        if ($result) {
            // 答案正确处理
        } else {
            // 答案错误处理
        }
    }
}
?>

注意:以上代码为示例,可能存在语法错误,需根据实际情况调整。

用PHP做一个答题系统。求救啊~~~~

  • 设置 HTML 页面,通过 POST 获取用户答案并与正确答案对比,正确则分数加 1,最终统计总分即可。