Hola,
Podrías utilizar solamente una consulta, normalmente es preferible traer todos los datos necesarios de una sola vez y después usar los métodos de agrupación.
Por ejemplo, podrías utilizar una sola consulta, como pareciera que lo hubieras planificado originalmente, debe devolver todos los campos y estar ordenados por preguntas y respuestas desde la base de datos,
Código:
$consulta = "SELECT a.id_pruebas, b.descrip_preg, d.descrip_nivel, e.nombre_habil, b.id_preguntas
f.id_preguntas, f.descrip_resp, f.letra_resp, f.correctas
FROM pruebas a
INNER JOIN preguntas b ON a.id_pruebas = b.id_pruebas
INNER JOIN asignaturas c ON a.id_asignaturas = c.id_asignaturas
INNER JOIN niveles d ON b.id_niveles = d.id_niveles
INNER JOIN habilidad e ON b.id_habil = e.id_habil
INNER JOIN respuestas f ON b.id_preguntas = f.id_preguntas
WHERE a.id_curso = '".$_POST['id_curso']."' and b.id_pruebas='".$_POST['pruebas_r']."'".
"ORDER BY a.id_pruebas ASC, f.letra_resp ASC";
$result = $mysqli->query($consulta);
Después solamente imprimes la pregunta cuando cambie,
Código PHP:
$last_id_pruebas = -1;
while ($row = result->fetch_array()) {
if ($last_id_pruebas !== $row['id_pruebas']) {
<?echo "<strong>".($r=$r+1).". ".$row['descrip_preg']."</strong> <br><br>";?>
$last_id_pruebas = $row['id_pruebas'];
}
<? echo "<input name=".$row['id_preguntas']." value=".$row['letra_resp']." type='radio'> ".$row['descrip_resp']."<br>"; ?>
}
Saludos,