【问题标题】:How to select from mysql tables randomly or shuffle it?如何从 mysql 表中随机选择或随机选择?
【发布时间】:2014-10-16 10:05:40
【问题描述】:

我正在开发一个测验应用程序

  1. 图 1 显示 index.php 页面
  2. 图 2 显示了第一个问题
  3. 图 3 显示第二个问题
  4. 图 4 显示第三个问题
  5. 图 5 显示完成测验后的结果
  6. 图 6 显示了数据库“quizzer”及其表格
  7. 图 7 显示了“问题”表
  8. 图 8 显示了“选择”表

此链接包含我到目前为止所做的所有代码(和图像)

https://www.mediafire.com/folder/g5ao7f5q0fe6y/quiz

1.现在我的问题是如何从“问题”表中随机选择问题 以及“选择”(通过向现有文件添加代码或创建新文件)。

2.如果用户在开始之前刷新/重新加载页面(“开始测验”)或在完成测验后单击“重试”, 问题应该随机出现。

3.基本上我想在每次刷新时更改问题出现在浏览器中的顺序。

4. 上面提到了我目前的工作......请帮我解决这个“随机”问题 !!

P.S - 是否有可能,通过在 PHP 中创建一个随机函数来检查会话中的重复问题和 检查问题的“id”,如果它是新的,则将其显示在页面上。

如果是我应该怎么做,如果不是那怎么办?

【问题讨论】:

  • 你从 url $number = (int) $_GET['n']; 取值 $number = rand(1, 3); 以便每个时间值会自动改变
  • 试过了,但不是所有的问题都出现了。假设随机选择问题编号“3”,那么回答后测验就结束了。如果选择“2”然后选择“3”,那么测验是回答后结束..此外,在显示问题“2”时,它会说“问题 2,共 3”。如果它首先选择它,它应该显示“问题 1,共 3”

标签: php html mysql random


【解决方案1】:

你可以试试order by RAND()

RAND() 是一个 mysql 函数,用于随机获取数据,您可以在上面的 sql 语句中根据需要添加条件。 我希望这会帮助你 继续编码

谢谢:)

【讨论】:

    【解决方案2】:

    这不是一个完全合格的答案,但请尝试将ORDER BY RAND() LIMIT 1 添加到您的 SQL 查询中。这基本上是从 MySQL 中的表中检索随机条目的方法。从那里开始,您可以使用 ID 从该表中找出答案。

    【讨论】:

      【解决方案3】:

      我了解到您想随机选择一个问题,并且您不想在一个会话中选择相同的问题(是这样吗?)。 我建议在用户开始测验时创建问题出现序列并保存在 $_SESSION 中。

      ---像这样---

      $questions = array();
      for ($i=0; $i < $total; $i++) {
          $questions[$i] = $i + 1;
      }
      $randomizedSequence = shuffle($questions);
      $_SESSION['sequence'] = $randomizedSequence;
      

      ---像这样---

      并根据question.php的参数'n'创建查询以选择问题。

      ---像这样---

      $number = $_GET['n'] - 1;
      $query = 'SELECT * FROM `questions`
                WHERE question_number = ' . $_SESSION['sequence'][$number];
      

      ---像这样---

      希望能帮到你。

      【讨论】:

        猜你喜欢
        • 2011-04-16
        • 2018-04-03
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多