Tu a écritMais en théorie ce que j'ai fais avec les elseif ça devrait pas arrêter l'enchainement dès lors qu'une des conditions est remplie ?
Non monsieur

! En gros, chaque condition sera testée : si la condition est remplie alors on entre dans celle-ci, sinon le script passe au suivant et teste à nouveau la nouvelle condition. Ceci s'applique également pour : if-else, switch...
Pour interrompre une condition, on peut utiliser :
break(dans les structures for, foreach, while, do-while ou switch),
exit ou die(MAIS arrête carrément le script en cours),
return(dans le cadre des fonctions).
Foreach parcours un tableau, on peut dire que c'est la boucle faite pour les tableaux(Lien : utilisation de foreach), ton code utilise les tableaux dont
$affi3,
et ce qu'on observe c'est qu'il y a des éléments récurrents(dans les if-elseif et dans mysql_query() qui utilise les champs de même clé que celle utilisé par le tableau $affi3).
En gros c'est la même chose écrite avec les elseif MAIS EN BEAUCOUP plus simple !
Le script parcours ton tableau tout seul comme un grand, mais agira uniquement si la condition if dans celle-ci est remplie, c-a-d, quand une valeur du tableau sera égale à 'no'. Si la condition est remplie, le script exécute la requête et sortira du foreach par l'intermédiare de break et continue son chemin...
Désolé, je peux pas expliqué plus simplement !
______________________________________________________________________