質問とそのオプションを持つクイズを作成しています。質問とオプションの両方が結果セットのデータベースから来ています。私はループと結果セットの問題に直面しています。2つの異なる結果セットで質問と回答を持つPHPクイズ
1 - 各質問のうち選択できません。質問1からオプションを選択しているときは、質問2からオプションを選択できませんでした。
2 - 私のページがクイズ内の質問の数と同じに読み込まれています。たとえば、5つの質問があり、5回リロードすると、ページが2回リロードされます。
if(@$_GET['q']== 'quiz' && @$_GET['step']== 2) {
[email protected]$_GET['eid'];
[email protected]$_GET['n'];
[email protected]$_GET['t'];
$a=1;
$b=0;
$q=mysqli_query($con,"SELECT count(*) FROM questions WHERE eid='$eid'");
while($row=mysqli_fetch_array($q)){
$b=$row['count(*)'];
}
echo '<div class="panel" style="margin:5%">';
for($a=1;$a<=$b;$a++){
$q=mysqli_query($con,"SELECT * FROM questions WHERE eid='$eid' AND sn='$a' ");
while($row=mysqli_fetch_array($q))
{
$qns=$row['qns'];
$qid=$row['qid'];
echo '<b>Question '.$a.' :<br />'.$qns.'</b><br />';
$q=mysqli_query($con,"SELECT * FROM options WHERE qid='$qid' ");
echo '<form action="update.php?q=quiz&step=2&eid='.$eid.'&n='.$sn.'&t='.$total.'&qid='.$qid.'" method="POST" class="form-horizontal">
<br />';
while($row=mysqli_fetch_array($q))
{
$option=$row['option'];
$optionid=$row['optionid'];
echo'<input type="radio" name="ans" value="'.$optionid.'">'.$option.'<br />';
}
echo '<br /><br />';
}
}
echo'<br /><button type="submit" class="btn btn-primary"><span class="glyphicon glyphicon-lock" aria-hidden="true"></span> Submit</button></form></div>';
}
ありがとうございます。
より良い変数名とインデントをお手伝いします。 – Ice76
eid-exam ID、qns-質問、qid-質問Id – Avi
IMO、MySQLクエリのネストされたループは非常に悪い習慣です。データを取得し、そのデータを表示する必要があります。私は正直にどこから始めるべきかわかりません... – Ice76