使用MySql选择随机行并在另一页上使用相同的行信息

时间:2017-02-09 13:45:43

标签: php mysql random

我现在有一个工作测验,我从一个目前只有5行的数据库(正在进行扩展)中收到3个随机行的选择。格式数据库:

| id |     question     | option1 | option2 | option3 | answer |
--------------------------------------------------------
| 1  | What is my name? |  Dave   |   Bob   | Charles | Linda  |

在connect.php中:(我知道MySql语句已被弃用,并将在适当的时候更新到MySQLi)

$query="SELECT * FROM (SELECT * FROM mytable ORDER BY rand() LIMIT 3) T1 ORDER BY id";
$result = mysql_query($query, $connect);

然后在quiz.php中:

require (connect.php);
while($row = mysql_fetch_assoc($result)) {
    echo '<p>';                                                                                         
    echo $row['id'] . '.  ';
    echo $row['question'];
    echo '</p>';
}

在while循环中生成单选按钮,将选项与生成的问题相关联,此部分即使随机化也能完美运行,因此不包含在上面。

在我开始尝试数据库行选择的随机化之前,我可以在quiz.php和quizresults.php中使用相同的while循环,因为它们都会选择相同的5行,这是完美的。但是现在我决定随机选择我不能在每个页面中使用相同的循环,因为它为quiz.php(问题部分)选择一个随机的3行,然后为测验结果选择不同的随机3行。当结果与问题不匹配时,php不理想...

所以我想要做的是当在quiz.php中进行查询时,我想将所有$ row的值分配给mutlidimensional数组(我认为),然后在quizresults.php中使用该数组来回显那些包含原始查询中所有值的行,我希望使用与结果页面中相同的格式。

在quizresults.php中:

require (connect.php);
while($row = mysql_fetch_assoc($result)) {
    echo '<p>';                                                                                         
    echo $row['id'] . '.  ';
    echo $row['question'];
    echo '</p>';
}

它使用相同的循环打印问题,但显然有一些单选按钮验证码,我为了问题的目的而修剪。

总而言之,我的问题是:如何在quiz.php(问题页面)中实现随机化,然后在quizresults.php(答案页面)中使用随机行的选择而不使用相同的查询?

0 个答案:

没有答案