Lo del encapsualimiento ha sido un fallo tecnico. ¿Y a que if te refieres?. Am espera. El if que cerraba es el cambio que primero me has dicho, el <? } ?> que estaba en medio. Ya sabía yo que había puesto eso ahí por algo.
La lógica estaba bien hasta el primer cambio xD.