【发布时间】:2016-02-11 09:00:06
【问题描述】:
我有一个包含 100 个问题和多个答案的数据库。我想以测验形式显示,一次选择 20 个随机问题。我在下面做了类似的事情
$m=new MongoClient();
$db=$m->mydb;
$c=$db->quiz;
$cursor = $c->find()
$n = 20;
foreach ($cursor as $obj) {
$links=array('$obj["question"]<br><br>
<input type="radio" name="q1" value="$obj["ch1"]"> $obj["ch1"]<br>
<input type="radio" name="q1" value="$obj["ch2"]"> $obj["ch2"]<br>
<input type="radio" name="q1" value="$obj[ch3"]"> $obj["ch3"]</p>');
$rand_keys = array_rand($links, $n);
echo "<center>". "<br><table><tr><td>";
echo "1. ". $links[$rand_keys[0]] . "<br>";
echo "</td></tr><tr><td>";
echo "2. ".$links[$rand_keys[1]] . "<br>";
echo "</td></tr><tr><td>";
echo "3. ". $links[$rand_keys[2]] . "<br>";
echo "</td></tr><tr><td>";
}
它不工作。代码有什么问题吗?请帮助我找出错误以使其工作或任何可以实现我的目的的方法。
【问题讨论】:
-
@AlexBlex 我不确定它是否重复。
-
@Puneeth,你用的是哪个版本的 MongoDB?
-
@ConstantinGuay,2.6.11。
-
@Puneeth 好的,所以你不能使用 MongoDB 3.2 的新功能 $sample。在没有 PHP 的情况下从数据库中获取随机值的方法可能是添加随机条目。您添加一个字段
'random' => rand(1,10000)(取决于您将拥有多少个文档),然后在您的查询中,您也要求一个随机值。