Si ce que tu veux c'est :
- groupe 1
-- pharmacie 1.1
-- pharmacie 1.2
- groupe 2
-- pharmacie 2.1
-- pharmacie 2.2
Alors tu n'as besoin que d'une requête :
("select nom_phar, groupe, id_phar from PHARMACIES");
Mais il te faut ajouter un tri par groupe.
Ensuite tu boucles, tu testes le groupe : s'il est vide (pour la première itération) ou différent du groupe courant, alors tu sais que tu changes de groupe, tu l'affiches comme tu veux et tu le stockes en "groupe courant".
Là tu as une requête dans une boucle, ça peut nuire au performance et c'est inutile.