Con ese código, es normal que se multipliquen los "campos" (registros, vaya).
Si tienes un bucle que trae todos los registros, y luego un bucle que repite veinte veces los resultados, otra cosa no cabe esperar.

Quita el bucle for(), y antes de while declaras $i, y ya dentro del bucle, pones $i++;.