如何在php中随机选择

时间:2015-09-03 06:50:11

标签: php mysql random

我正在创建一个随机生成的测验,包含10个问题。在生成随机问题时很好,但我想随机显示选项,与问题相同。

这是我目前正在处理的代码:

<?php
  generate();
  function generate(){
    include('connection.php');
    mysql_select_db('exam');
    $result=mysql_query("SELECT * FROM questionaires
                         INNER JOIN choices ON questionaires.q_id=choices.q_id
                         WHERE RAND()<(SELECT ((10/COUNT(*))*10) FROM questionaires)
                         ORDER BY RAND() LIMIT 10");
    $c=0;
    echo "<table border='3' align='center' bordercolor='#CCCCCC'>
            <tr>
              <th>Number:</th>
              <th>Question</th>
            </tr>
          ";

    while($row = mysql_fetch_array($result)){
      $c++;
      echo "<tr>";
      echo "<td>" . $c . "</td>";
      echo "<td>";
      echo $row['question'] . "<br>";
      echo "<input type='radio' name='ans'>".$row['choice_a']."</input><br>";
      echo "<input type='radio' name='ans'>".$row['choice_b']."</input><br>";
      echo "<input type='radio' name='ans'>".$row['choice_c']."</input><br>";
      echo "<input type='radio' name='ans'>".$row['choice_d']."</input><br>";
      echo "</td>";
      echo "</tr>";
    //}
   //}
    }
    echo "</table>";
  }
?>

很少得到高度赞赏。

1 个答案:

答案 0 :(得分:2)

您可以将脚本更改为:

echo "<td>";
echo $row['question'] . "<br>";

$ans=array($row['choice_a'],$row['choice_b'],$row['choice_c'],$row['choice_d']);
shuffle($ans);

foreach ($ans as $choice) {
    echo "<input type='radio' name='ans'>".$choice."</input><br>";
} unset($choice);

echo "</td>";