credo che il motivo possa essere questo:

tu sei dentro un ciclo while per la query27.. ogni volta chiami la query28 che ti darà un set di risultati, diciamo "pippo", "paperino" e "topolino"

ad ogni iterazione del while tu rifai la query, e quindi il risultato sarà sempre il primo elemento pescato dal set di risultati (nel mio esempio "pippo")