질문과 그 옵션이있는 퀴즈를 만들고 있습니다. 질문과 옵션 모두 결과 집합의 데이터베이스에서 제공됩니다. 나는 루프와 결과에 문제가있다.PHP 퀴즈가 두 가지 다른 결과 집합의 질문과 답변을 가지고 있습니다.
1 - 각 질문에서 옵션을 선택할 수 없습니다. 질문 1의 옵션을 선택할 때마다 질문 2의 옵션을 선택할 수 없습니다.
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- question, qid- 질문 ID – Avi
IMO, MySQL 쿼리의 중첩 루프는 매우 나쁜 습관입니다. 데이터를 가져 와서 해당 데이터를 표시해야합니다. 나는 정직하게 어디서부터 시작해야할지 모르겠다. ... – Ice76