获取随机记录并使用PHP和MongoDB以特定格式显示


Getting random records and display in particular format using PHP and MongoDB

我有一个数据库,里面有 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> &nbsp;&nbsp;&nbsp;&nbsp;
                                                    <input type="radio" name="q1" value="$obj["ch1"]"> $obj["ch1"]<br>&nbsp;&nbsp;&nbsp;&nbsp;
                                                    <input type="radio" name="q1" value="$obj["ch2"]"> $obj["ch2"]<br>&nbsp;&nbsp;&nbsp;&nbsp; 
                                                  <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.&nbsp;&nbsp;". $links[$rand_keys[0]] . "<br>";
    echo "</td></tr><tr><td>";
    echo "2.&nbsp;&nbsp;".$links[$rand_keys[1]] . "<br>";
    echo "</td></tr><tr><td>";
    echo "3.&nbsp;&nbsp;". $links[$rand_keys[2]] . "<br>";
    echo "</td></tr><tr><td>";

    }

它不起作用。代码有什么问题吗?请帮助我找到错误的方法使其工作或任何可以实现我的目的的方法。

好的,考虑到其他不重复的问题,我建议单独学习 php 的基础知识,并尝试迭代硬编码的嵌套数组以打印预期的输出。

所以问题中的代码存在一些问题:

  • 它不会获取随机问题
  • 它什么都不打印,只是向数组中添加 1 个长字符串links。请了解'"之间的区别
  • 没有循环来迭代答案,它根本不是有效的PHP代码

工作代码(再次考虑来自非重复问题的文档结构)可能如下所示:

foreach ($cursor as $obj) { 
    echo $obj["question"];
    foreach($obj["answerswers"] as $key=>$answer) {
        echo '<input type="radio" name="' . $key . '" value="'.$answer.'">';
    }
}