Jump to content

Stuck


kwdelre

Recommended Posts

I've been stuck too long for my beginner brain. Here is the majority of the code:

 

mysql_connect($host, $dbusername, $password);
mysql_select_db($TxQuizdb);


$quizquery = mysql_query("SELECT Id, Total_Questions, Maximum_Score, Passing_Score, Correct_Answer FROM Module_1_Quiz WHERE  Id = '1'");
$quizqueryresult = mysql_fetch_array($quizquery);
$totalq = $quizqueryresult['Total_Questions'];
$maxscore = $quizqueryresult['Maximum_Score'];
$passingscore = $quizqueryresult['Passing_Score'];



$qvalue = $maxscore / $totalq; //scoring values
$Score=0;


$ansquery = mysql_query("SELECT Correct_Answer FROM Module_1_Quiz");



$QChoice_1 = $_POST['QChoice_1'];
$QChoice_2 = $_POST['QChoice_2'];





while ($answers = mysql_fetch_array($ansquery)) {

   $i++;
	if ($_POST['QChoice_$i'] == $answers['Correct_Answer']) {
  
$Score = round(($Score + $qvalue), 0);

}
else { echo "wrong";}
}


 

The problem i am running into is trying to score this quiz with the following:

 

while ($answers = mysql_fetch_array($ansquery)) {

   $i++;
	if ($_POST['QChoice_$i'] == $answers['Correct_Answer']) {
  
$Score = round(($Score + $qvalue), 0);

}
else { echo "wrong";}
}

 

I can't get the "if" statement to satisfy.....and am about to rip my eyes out...

 

thanks!

Link to comment
https://forums.phpfreaks.com/topic/224113-stuck/
Share on other sites

Then why would this be working fine? i didn't "initialize" $i. When I did initialize $i it wouldn't work.

 

//Connect to database
mysql_connect($host, $dbusername, $password);
mysql_select_db($TxQuizdb);


//Retrieve Quiz Questions
$qquery = mysql_query("SELECT * FROM Module_1_Quiz");


$quiz = "<table width=600 border=1>";
while ($m1questions = mysql_fetch_array($qquery)) { 
    

$question = $m1questions["Question"];
$answer1 = $m1questions["Choice1"];
$answer2 = $m1questions["Choice2"];
$answer3 = $m1questions["Choice3"];

$i++;


$quiz .= "<tr><td> $question";
$quiz .= "</td></tr><br><tr><td>";
$quiz .= "<input type='radio' name='QChoice_$i'  value='$answer1' />";
$quiz .= "$answer1";
$quiz .= "<input type='radio' name='QChoice_$i'  value='$answer2' />";
$quiz .= "$answer2";
$quiz .= "<input type='radio' name='QChoice_$i'  value='$answer3' />";
$quiz .= "$answer3";
$quiz .= "</td></tr>";


}

$quiz .= "</table>";



echo $quiz;

 

 

Even when i do initialize it, it still doesn't work...

 

$QChoice_1 = $_POST['QChoice_1'];
$QChoice_2 = $_POST['QChoice_2'];

$i=1;



while ($answers = mysql_fetch_array($ansquery)) {


	if ($_POST['QChoice_$i'] == $answers['Correct_Answer']) {
  
$Score = round(($Score + $qvalue), 0);

}
else { echo "wrong";}
$i++;
}

 

thanks

Link to comment
https://forums.phpfreaks.com/topic/224113-stuck/#findComment-1158103
Share on other sites

no one said that initializing $i would fix anything. it is possible to ignore good coding practices and have "working" code, especially if your error_reporting is turned down or off. otherwise, you would get notices about un-initialized variables.

 

I don't see where you ever initialize the $i variable, so it may not contain the value you think it does.

Link to comment
https://forums.phpfreaks.com/topic/224113-stuck/#findComment-1158110
Share on other sites

Bluesky - I know you are trying to help so thank you. i'm learning a lot in a small time. I finally got it to work with this:

 

$ansquery = mysql_query("SELECT * FROM Module_1_Quiz");
//$answers = mysql_fetch_array($ansquery);


$QChoices = array($_POST['QChoice_1'], $_POST['QChoice_2']);



$i = 0;
while ($answers = mysql_fetch_array($ansquery)) {


  if($QChoices[$i] == $answers['Correct_Answer']) {
  
$Score = round(($Score + $qvalue), 0);

   
  }
  $i++;
}

 

Thanks again for lending your eyes.

Link to comment
https://forums.phpfreaks.com/topic/224113-stuck/#findComment-1158191
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.