Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2008, 17:42
blinkx
 
Fecha de Ingreso: mayo-2006
Mensajes: 21
Antigüedad: 18 años, 9 meses
Puntos: 0
Insert en una BD de forma dinámica ...

Estoy desarrollando una página en la cual necesito Subir las calificaciones de los Alumnos de una escuela... El problema viene a la hora de hacer la inserción de las calificaciones, ya que para esto realizo una consulta previa para obtener una lista de los alumnos a calificar, dependiendo la materia y el maestro (o el curso que lleve).

Lo que se despliega de forma dinámica (por supuesto, a través del cfoutput query) es el currentRow, el Nombre del Alumno, en un input de tipo hidden le pongo el pk del alumno, en un cfselect el parcial a calificar, en otro input de tipo hidden guardo el pk de la materia a calificar y por ultimo agrego un nuevo input text para anotar la calificación, quedando algo mas o menos así:

Datos a insertar:

FK_Materia --> Para saber de que materia pertenece la calificación y que maestro
FK_Alumno --> Para saber de que alumno es la calificación
FK_Parcial --> Para saber a que parcial corresponde esa calificación
Calificacion --> Eso, la calificación...

--- Requeridos una vez ---

Parcial: Select --> Selecciono el parcial a calificar
Input - Hidden - Materia --> Guardo el PK de la materia

--- Requeridos varias veces, se crean de forma dinámica ---

Input - Hidden - Alumno --> Guardo el PK del alumno
Input - Text - Calificación --> Guardo la calificación (Float)

A estos dos campos le concateno el currentRow para diferenciar los campos (quedando mas o menos así: fk_alumno1, calif1, fk_alumno2, calif2 ...), pero ahí viene el problema, al querer hacer el Insert intento desplegar todos los campos por medio de un loop y que vaya haciendo el Insert de forma progresiva, pero no surge el efecto deseado, no se como tomar todos los valores de esos campos, estoy atascado en ese detalle, si alguien me pudiera ayudar le agradecería muchísimo.

Ejemplo del loop:

<cfloop index="i" from="1" to="#df.totalAlumnos#">

<cfquery datasource="#application.DSN#">

INSERT INTO calificaciones(fk_materia, fk_alumno, fk_parcial, calificacion)
VALUES (#df.fk_materia#, #AQUÍ_VA_EL_PK_ALUMNO#, #df.fk_parcial#, <cfqueryparam cfsqltype="cf_sql_float" value="#AQUÍ_VA_LA_CALIF#">)

</cfquery>

</cfloop>

#AQUÍ_VA_EL_PK_ALUMNO# = He intentado con: #"df.fk_alumno"&i# PERO NO FUNCIONA!! :S

No importa que no sepan mucho de Coldfusion, solo quiero algo de lógica para poder resolver ese problema, espero que me hayan entendido...

Gracias.