Esto no hay necesidad de complicarlo, es mas, se puede hasta simplificar, la mayoria de las tareas cotidianas la base de datos puede realizarlas perfectamente sin ayuda de php, y, en muchos casos, mas rapido que este.
Por ejemplo, si en vez de dos consultas, haces una sola como esta:
Código MySQL:
Ver original m.idMateria,
m.nombre,
materias m
ON m.idMateria
= ma.idMateria
AND ma.idAlumno
= {$idAlumno
}
No hace falta mas nada, en el php haces:
Código PHP:
Ver original<?php
while ($row = $materias->fetch_array())
{
?>
<li>
<input type="checkbox" name="<?= $row['idMateria']; ?>" id="<?= $row['idMateria']; ?>" value="<?= $row['idMateria']; ?>" <?= $row['laTiene']; ?>> <?= $row['nombre']);?>
</li>
<?php
}