我现在有一个工作测验,我从一个目前只有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(答案页面)中使用随机行的选择而不使用相同的查询?