JaneH Posted March 3, 2014 Share Posted March 3, 2014 Hi guys, I'm a newbie when it comes to PHP and I'm wrecking my head trying to figure this out. Ok, so I've created an MCQ with 5 questions using PHP and mySQL. My issue is that the quiz displays the score for each individual answer. I want to display the total score only. For example, if the user gets all five questions right the output is: 100100100100100. Similarly, if the user gets 4 questions right it displays something lile 1001000100100. Radio buttons for MCQ: echo '<br><b>',$myrow["Question"],'</b><br> <br><input type="radio" name="ans'.$myrow["Q_ID"].'" value="A1">'.$myrow["A1"].'<br> <input type="radio" name="ans'.$myrow["Q_ID"].'" value="A2">'.$myrow["A2"].'<br> <input type="radio" name="ans'.$myrow["Q_ID"].'" value="A3">'.$myrow["A3"].'<br> <input type="radio" name="ans'.$myrow["Q_ID"].'" value="A4">'.$myrow["A4"].'<br> <br>'; Scores for MCQ: if (isset($_POST['submit'])) { $CorrectAns = 0; $WrongAns = 0; if ($_POST['ans'.$myrow["Q_ID"]] == $myrow["Correct"]) { $CorrectAns ++; } else { $WrongAns ++; } $NumofQs = $CorrectAns + $WrongAns; $Total = ($CorrectAns / $NumofQs) * 100; echo $Total; } } } Can anybody help? Thanks! Quote Link to comment Share on other sites More sharing options...
X5HOST Posted April 7, 2014 Share Posted April 7, 2014 (edited) Hi Jane H, It looks like you need a while loop within your code, otherwise it will just be adding 1 point to the defined variable(s). Check the snippet that I have included below for you. if (isset($_POST['submit'])) { $CorrectAns = 0; $WrongAns = 0; $count = 0; while ($count <= 5) { if ($_POST['ans'.$myrow["Q_ID"]] == $myrow["Correct"]) { $CorrectAns ++; } else { $WrongAns ++; } } } $count++; } $NumofQs = $CorrectAns + $WrongAns; $Total = ($CorrectAns / $NumofQs) * 100; echo $Total; } Edited April 7, 2014 by X5HOST Quote Link to comment Share on other sites More sharing options...
joel24 Posted May 23, 2014 Share Posted May 23, 2014 You can also set your radio buttons to be an array, echo '<br><b>',$myrow["Question"],'</b><br> <br><input type="radio" name="ans['.$myrow["Q_ID"].']" value="A1">'.$myrow["A1"].'<br> <input type="radio" name="ans['.$myrow["Q_ID"].']" value="A2">'.$myrow["A2"].'<br> <input type="radio" name="ans['.$myrow["Q_ID"].']" value="A3">'.$myrow["A3"].'<br> <input type="radio" name="ans['.$myrow["Q_ID"].']" value="A4">'.$myrow["A4"].'<br> <br>'; and then in your php foreach ($_POST['ans'] AS $key=>$value) { //$key will = $myrow["Q_ID"]; //$value will = $myrow["Ax"] } Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.