Prueba asi a ver, es un poco mas larga que la que ya te sugirieron pero igual funciona:
Código PHP:
Ver original//recibimos la id a buscar
$id_programa = $_POST['id_programa'];
//buscamos el programa
$prog = $db->query("SELECT * FROM programa = '$id_programa'");
$row_pro = $prog->fetch_assoc();
$programa = $row_pro['Nombre_Programa'];//nombre del programa para mostrarlo luego
//responsable
$resp = $db->query("SELECT * FROM responsable = '$id_programa'");
$row_resp = $resp->fetch_assoc();
$responsable = $row_resp['Nombre_Responsable'];//nombre del responsable para mostrarlo luego
//ahora listamos los participantes
$a = $db->query("SELECT COUNT(Nivel_Participante) as cantidad,Nivel_Participante FROM `participante` GROUP BY `Nivel_Participante` ORDER BY `Nivel_Participante` ASC");
//creamos la lista
echo "<ul>";
while($row = $a->fetch_array()){
//mostramos el nivel y cuantos participantes hay
echo "<li>Nivel ".$row['Nivel_Participante']." - ".$row['cantidad']." Integrantes<ul>";
$filtro = $row['Nivel_Participante'];
//listamos los nombres de los participantes de ese nivel
$parti = $db->query("SELECT * FROM `participante` WHERE `Nivel_Participante` = '$filtro'");
while($rowb = $parti->fetch_array()){
echo "<li>".$rowb['Nombre_Participante']."</li>";
} echo "</ul>";
}echo "</ul>";
Puedes verla funcionando en esta
lista de Precios, ya que agrupa los items por cada categoria, en este caso por nivel en una sola consulta