Absence de résultats dans une boucle qui en a forcément et éliminer les doublons dans une boucle simple

Bonjour,
Je cherche a afficher des articles d’autres auteurs, avec par ordre prioritaire:
1 le même code postal que l’auteur
2- si aucun résultat, le même département
3- enfin, dans la région.

J’arrive a un résultat jusque dans le département. J’ai pour cela une boucle qui me liste les codes postaux trouvés dans la table geo_communes que je met dans un #SET{code,#ARRAY}.
ensuite j’utilise les boucles suivantes qui me donnent les articles des auteurs dont le code postal figure dans le tableau.

<BOUCLE_test(POUR){tableau #GET{code}}{doublons}>

<BOUCLE_auteursc(AUTEURS_ELARGIS) {code_postal =#VALEUR}{id_auteur!=#SESSION{id_auteur}}{doublons}>

<BOUCLE_articlesd(ARTICLES) {id_rubrique} {id_auteur}>
#TITRE
</BOUCLE_articlesd>
Cet auteur n’a pas publie d’annonce
<//B_articlesd>
</BOUCLE_auteursc>

</BOUCLE_test>

Je n’arrive pas a savoir comment je peux faire si aucun résultat n’est trouvé, car dans la boucle POUR, il y a forcément des résultats, mais pas forcément dans la boucle auteurs élargis ou articles.

Autre point, mais moins génant, la boucle qui me permet de lister tous les codes postaux est la suivante:

#SET{code,#ARRAY}

<BOUCLE_communes_depart(GEO_COMMUNES){id_departement = #GET{id_depart}}{par code_postal}>
#SET{code,#GET{code}|array_merge{#ARRAY{#COMPTEUR_BOUCLE,#CODE_POSTAL}}}
</BOUCLE_communes_depart>

Dans la base, il y a plusieurs communes avec le même code postal, donc la recherche décrite plus haut effectue plusieurs fois la même recherche d’auteur. je me demande si on peut éliminer les doublons au départ.

Merci pour vos lumières.

SPIP 2.08 + bonux + geographie + inscriptions 2 + …