¿Si sabes lo que hace un do-while verdad?
Dicha instrucción ejecuta primero el bloque, y luego realiza la comparación del while().
Así pues, la primer vez es obvio que no vas a tener nada en la variable $row_dinamico, pues solo se define al llegar la comparación.
¿Por qué no intentas usar un while() normal?