Hola,
Entonces, según he entendido no has guardado en la BD las respuestas correctas. Yo lo que haría, seria indicar todas en un array, tal y que 'Lengua1'=>'a', y así sucesivamente. Luego, sacaria todas las respuestas y las pasaría por el array.
Te dejo un ejemplo mas o menos.
<?php
if(!$client){die('No se pudo conectar a la bd.');}
'Lengua1'=>'a',
'Lengua2'=>'b',
'Lengua3'=>'a',
'Lengua4'=>'d',
'Lengua5'=>'a',
'Matematicas1'=>'b',
'Matematicas2'=>'c',
'Matematicas3'=>'d',
'Matematicas4'=>'a'
);
$query = 'SELECT * FROM examen';
// $respuestas contendrá las cuentas (correctas/incorrectas) por cada columna.
$respuestas = array(); // Array para modo estrcito.
// Por cada resultado,
// Creamos un array por cada email que contara y lo ponemos en 0
$respuestas[$row['email']] = array('correctas'=>0,'incorrectas'=>0); // Por cada item en $correctas.
foreach($correctas as $index=>$correcta){
// Comprobamos si el valor que contiene el nombre del item (Lengua1,Lengua2) que hemos sacado de la bd
// Coincide con la respuesta correcta.
if($row[$index]===$correcta){
// Si coincide sumamos 1 correctas
$respuestas[$row['email']]['correctas']++;
}else{
// Si no coincide sumamos a incorrectas.
$respuestas[$row['email']]['incorrectas']++;
}
}
}
echo '<pre>';
?>
La idea, es que el nombre de $correctas (Lengua1,Lengua2) coincida exactamente con el nombre que tiene la celda en la bd y que la respuesta (a,b,c,) sea la correcta. Si todo sale bien, el resultado seria algo asi xD.
Array
(
[listillo@soylist.com] => Array
(
[correctas] => 9
[incorrectas] => 0
)
[juancho@intentoserlisto.com] => Array
(
[correctas] => 2
[incorrectas] => 7
)
)
Saludos