我有以下表结构:
Id问题答案1答案2答案3答案4
Answer1始终是正确答案,因此我希望能够使用PHP以随机顺序显示四个答案。
这怎么可能?
答案 0 :(得分:3)
将Answers放入数组中,然后使用:shuffle
答案 1 :(得分:3)
您可以使用这样的php shuffle
函数来执行此操作:
首先创建一个答案数组$answers
,然后将这个数组shuffle($answers);
洗牌
$query=mysqli_query($db_conn, "SELECT Question, Answer1, Answer2, Answer3, Answer4 FROM questions_table WHERE id=1");
$array=mysqli_fetch_assoc($query);
$question=$array['Question'];
$answers=array($array['Answer1'], $array['Answer2'], $array['Answer3'], $array['Answer4']);
shuffle($answers);
答案 2 :(得分:2)
我建议将结果放入数组,然后使用以下代码对其进行随机播放(如果您使用预准备语句,并且最好使用它们):
$SQL = $db -> prepare("SELECT * FROM table WHERE id = :id");
$SQL -> execute(array(':id' => $id));
$results = $SQL -> fetch();
$question = $results['question'];
$answers = array($results['answer1'],$results['answer2'],$results['answer3'],$results['answer4'];
shuffle($answers);
答案 3 :(得分:1)
您的表结构将使数据库管理成为未来的一个大问题
使用您当前的设计,通常选择您的问题,然后将答案放在一个数组中,然后shuffle($answers)
将随机播放答案。
正确的解决方案将标准化您的数据库,将answers
与questions
分开。使用question_id将问题与他们的答案联系起来。它将使您的数据库设计非常灵活,管理将变得更加容易。
答案 4 :(得分:0)
您将无法使用MYSQL执行此操作,因为答案都在同一行中。作为ThePixelPony,您应该使用PHP中的shuffle
函数