¿No tendrías que imprimir $row['campo1'], $row['campo2'], $row['campo3'] en lugar de $dato?
Cita: Hasta ahora con mysqli_fetch_array, me captura solo el ultimo valor (en este caso nombre3), y lo repite en las 3 cajas de texto, quizas algo hago mal.
No, sucede que en el while() copias el valor de $row['campo1'] a $dato ¿cómo es posible que dicha variable represente tres cosas distintas al mismo tiempo? Es ridículo.