如何随机显示数据库的选定内容而不重复?

时间:2013-08-14 16:59:38

标签: php

我想在数据库中显示有关在线资质测试的问题。我生成代码以随机显示10个问题。

但主要问题是问题在重复。我不想在问题文件中重复提问。

这是随机显示问题的代码: -

<html>
<body>
<form action="./eval.php" method="post">
<?php

$connect = mysql_connect("localhost" ,"root","");

mysql_select_db("aptitude");



 for ( $i = 1; $i < 11; ++$i )
{

$query = mysql_query("SELECT * FROM `main`  ORDER BY RAND() LIMIT 1 ");




 while($rows = mysql_fetch_array($query)):

    $q = $rows['Q_no'];
    $qus = $rows['Question'];
    $a = $rows['answer1'];
    $b = $rows['answer2'];
    $c = $rows['answer3'];
    $d = $rows['answer4'];
    $ans = $rows['correct'];

     echo "Q$i:-$qus <br>";
    echo "A <input type=radio name = 'answer[$q]' value = '$a'></input>$a &nbsp &nbsp"; 
    echo "B <input type=radio name = 'answer[$q]' value = '$b'></input>$b &nbsp &nbsp"; 
    echo "C <input type=radio name = 'answer[$q]' value = '$c'></input>$c &nbsp &nbsp "; 
    echo "D <input type=radio name = 'answer[$q]' value = '$d'></input>$d <br><br> ";


    endwhile;

 }


?>

<center><input name="cmdSubmit" type="submit" id="cmdSubmit" value="Submit"/>
</center>
</form>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

删除for循环,一次获取所有10个问题。只要数据库中没有双重条目,这将为您提供10个独特的问题。

$query = mysql_query("SELECT * FROM `main`  ORDER BY RAND() LIMIT 10 ");

while($rows = mysql_fetch_array($query)){

    $q = $rows['Q_no'];
    $qus = $rows['Question'];
    $a = $rows['answer1'];
    $b = $rows['answer2'];
    $c = $rows['answer3'];
    $d = $rows['answer4'];
    $ans = $rows['correct'];

     echo "Q$i:-$qus <br>";
    echo "A <input type=radio name = 'answer[$q]' value = '$a'></input>$a &nbsp &nbsp"; 
    echo "B <input type=radio name = 'answer[$q]' value = '$b'></input>$b &nbsp &nbsp"; 
    echo "C <input type=radio name = 'answer[$q]' value = '$c'></input>$c &nbsp &nbsp "; 
    echo "D <input type=radio name = 'answer[$q]' value = '$d'></input>$d <br><br> ";


    }

 }