2014-10-16 181 views
1

我上的应用程式测验工作如何从mysql表中随机选择或随机播放它?

  1. 图像1显示了index.php页面
  2. 图像2示出的第一个问题
  3. 图像3示出了第二个问题
  4. 图像4示出了第三个问题
  5. 图像5示出了在完成测验
  6. 图像6示出了数据库“嘲弄”和它的表之后的结果
  7. 图像7示出了提出的问题'表
  8. 图像8示出了 '选择' 表

THIS LINK包含所有的代码(和图像)我这样做FAR

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

1.现在我的问题是如何从'问题'表 连同'选择'(通过向现有文件添加代码或创建一个新的)从RANDOMLY中选择问题。

2.如果用户在开始前('开始测验')刷新/重新加载页面,或者在完成测验后点击'Take Again',则问题应该随机出现。

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

4.到目前为止我的工作已在上面提到......... 请帮我解决这个“RANDOM”问题 !!

PS - 这将是可能的,通过PHP创建一个随机函数,它将为您在会话重复问题,并 检查该问题的“身份证”,如果它是新的显示在页面上。

如果是这样,我应该怎么做,如果没有,那么该怎么办?

+0

你正在从URL'$ number =(int)$ _GET ['n'];' 获取值'''这样每次值都会自动变化 – 2014-10-16 10:11:38

+0

试过但不是所有的问题都出现..如果选择问题编号'3'则随机选择,然后在回答问题后测验结束。如果选择'2'然后选择'3',然后在回答后测验结束。此外它说'第3题的问题2'显示问题'2'时,如果它首先选择,它应该显示'3的问题1' – 2014-10-16 11:52:26

回答

1

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

2

您可以尝试order by RAND()

一个RAND()是用于随机获得的数据MySQL的功能,进一步可以添加条件,按照您在上面的sql语句需要。 我希望这会帮助你保持 编码

谢谢:)

0

我明白,你想随机选择一个问题,你不希望在一个会话(这是正确的选择同样的问题? )。 我建议在用户开始测验时创建问题出现序列并保存在$ _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]; 

---这样---

我希望我可以帮你。