Estoy haciendo una aplicación con PHP con una serie de preguntas obtenidas aleatoriamente de una base de datos MySql, y cuando paso a comprobar las respuestas, mi intención es contabilizar las correctas y tomarlas como +1 a la nota, y las erróneas restarlas 0.2. Tengo el siguiente código en la hoja de respuestas:
Código PHP:
if (is_array($_SESSION['id_pregunta']))
foreach ($_SESSION['id_pregunta'] as $key=>$value)
{
$sql="SELECT * FROM preguntas WHERE id='$value'";
if ($sql=mysql_query($sql))
{?><tr><?
$assoc=mysql_fetch_assoc($sql);
$envio=$_SESSION['array'][$key];
$correcta=array_search("0",$envio);
$value1=$_POST['Pregunta'.$key];
print "<td class=\"pregunta\"><b><tt>".$assoc['pregunta']."</b></tt></td>\n";
print "<td".( ( array_search("0",$envio) == $value1 && $value1!="") ? " class=\"acierto\"" : " class=\"acierto1\"" )."><tt>".$assoc['correcta']. "</tt></td>\n";
print "<td".( ( array_search("1",$envio) == $value1 && $value1!="" ) ? " class=\"fallo\"" : " class=\"fallo1\"" )."><tt>".$assoc['incorrecta1']. "</tt></td>\n";
print "<td".( ( array_search("2",$envio) == $value1 && $value1!="" ) ? " class=\"fallo\"" : " class=\"fallo1\"" )."><tt>".$assoc['incorrecta2']. "</tt></td>\n";
print "<td".( ( array_search("3",$envio) == $value1 && $value1!="" ) ? " class=\"fallo\"" : " class=\"fallo1\"" )."><tt>".$assoc['incorrecta3']. "</tt></td>\n";
print "<td".( ( array_search("4",$envio) == $value1 && $value1!="" ) ? " class=\"fallo\"" : " class=\"fallo1\"" )."><tt>".$assoc['incorrecta4']. "</tt></td>\n";
?></tr><?
}
}
?><table> <tr><td>
TU NOTA ES: <?
$nota = array();
$arrayvalue = 0;
while ($arrayvalue <=9)
{
foreach ($_SESSION['id_pregunta'] as $key=>$value)
{
if(array_search("0",$envio) == $value1)
{
$nota[$arrayvalue++] = "1";
}
else
{$nota[$arrayvalue++] = "-0.2";}
unset($value);
}
}
$scoring = $nota[0]+$nota[1]+$nota[2]+$nota[3]+$nota[4]+$nota[5]+$nota[6]+$nota[7]+$nota[8]+$nota[9]; echo $scoring; session_destroy();
Gracias de antemano.