Si usas el mismo name para todos los campos es obvio que solo te guarde el último, pues los name deben ser únicos.
Lo ideal es agrupar los campos en su notación de array, y al recibir dicho array solo debes iterarlo para ir ajustando las consultas.
La verdad no veo el problema, eso lo puedes investigar en el foro, hay bastantes temas similares.