PHP 조건인데여.. 채택완료
객관식 퀴즈문제 5문제가 있습니다.
배열로 나오게 됩니다.
정답 내선택
$arr['0'] $q1
$arr['1'] $q2
$arr['2'] $q3
$arr['3'] $q4
$arr['4'] $q5
------------------------------------------
예)
정답 내선택 결과
2 3 X
4 2 X
2 4 X
3 3 O
1 1 O
-------------------------------------------
결과를 이용하여 점수를 구하고자 합니다. ( 위의 경우 40점 ) 2/5*100
초보임...
if( $arr[$I] == $q$I)
{
}
좀 도와주십쇼 아ㅇ
------------------------------------------------------------------
답변 5개
</p>
<p>$score = 0;
$arr = [2, 4, 2, 3, 1];</p>
<p>$q1 = 3;
$q2 = 2;
$q3 = 4;
$q4 = 3;
$q5 = 1;</p>
<p>foreach ($arr as $k => $v) {</p>
<p> $answer = ${'q' . ($k + 1)};</p>
<p> if ($v == $answer) {
$score++;
}
}</p>
<p>echo ($score / count($arr)) * 100;</p>
<p>
답변에 대한 댓글 3개
아래처럼 점수를 구하니까요.
(맞은개수/문제개수) * 100
<?php
$sum=0;
for($i=0; $i < 5; $i++){ //숫자"5" 대신 변수를 사용할 것입니다.
if($arr[$i]==${'q'.($i+1)}) //이표현이 무척 어려웟습니다. ${'q'.($i+1)};
{
$sum=$sum+1;
//echo ${'q'.($i+1)};
}
}
$avg = $sum/5*100; //숫자"5" 대신 변수를 사용할 것입니다.
//echo "합계: " . $sum . "<br />";
echo "점수: " . $avg;
?>
--------------------------
댓글 모두 큰 도움이 되었습니다.
도움주신 모든 분께 감사드립니다.
댓글을 작성하려면 로그인이 필요합니다.
<form name='test' action='answer_check.php' method='post'>
문1. ~~~체크하시오
<input name='ans1' value='1'>일이요 <input name='ans1' value='2'>이요
<input name='ans1' value='3'>삼이요
문2. ~~~체크하시오
<input name='ans2' value='1'>일이요 <input name='ans2' value='2'>이요
<input name='ans2' value='3'>삼이요
~~~
문100. ~~~체크하시오
<input name='ans100' value='1'>일이요 <input name='ans100' value='2'>이요
<input name='ans100' value='3'>삼이요
<input type='submit' value='정답제출'>
</form>
answer_check.php
<?php
$k = 100; //문항수
$ansArr=array(2,4,2,3,1,~~~~~~); //----정답배열
for($i=1; $i<= $k; $i++){
$ans = 'ans'.$i;
if($_POST[$ans] && $ansArr[$i] == $_POST[$ans]) $nn++;
}
정답수 : <?=$nn?>
답변에 대한 댓글 2개
if($_POST[$ans] && $ansArr[$i] == $_POST[$ans]) {
이런 에러가 발생하는데, 왜 그런걸까요? 아무리 봐도 이상이 없어 보이는데..
Notice: Undefined offset: 3 in ... answer_check.php on line 8
다음처럼 모두 type='radio' 를 넣으세요
<input name='ans1' value='1'> -----> <input name='ans1' value='1' type='radio'>
if($_POST[$ans] && $ansArr[$i] == $_POST[$ans]) $nn++; ----->
if( isset($_POST[$ans]) && $ansArr[$i] == $_POST[$ans]) $nn++;
그리고 위 소스 그대로 테스트할 때는
$k = 100; //문항수 <----- 실제 문항수로 변경
$ansArr=array(2,4,2,3,1,~~~~~~); //----정답배열 <--- 이 부분을 실제 문항에 맞게 배열을 수정해야 합니다
댓글을 작성하려면 로그인이 필요합니다.
$arr= "2,4,2,3,1";
$q_ha="3,2,4,3,1";
$arr_a = explode(",", $arr);
$q_ha_a = explode(",", $q_ha);
$g_h=0;
for($i=0;$i<count($q_ha_a);$i++){
if($arr_a[$i]==$q_ha_a[$i])
$g_h=$g_h*1+20;
}
echo $g_h;
답변에 대한 댓글 1개
한번 해보겠습니다.^
감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
$hap = "0";
for( $i=0; $i < count($arr); $i++){
if( $arr[$I] == $q$I)
{
$hap++;
}
}
if($hap > 0){
$total_hap = $hap * 20;
}
echo $total_hap;
으로..해보심이..ㅎㅎ
답변에 대한 댓글 2개
if( $arr[$I] == $q$I) // 이부분은 $q$I+1 //이거 한 번 봐 주세요..
감사합니다;;
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
1번에서 5번까지라면 모르지만 문제수가 100개 정도 되면..어찌할지