Foros del Web » Programando para Internet » PHP »

Esto esta correcto? ..

Estas en el tema de Esto esta correcto? .. en el foro de PHP en Foros del Web. Buenas, primero que nada, saludos a todos los de esta comunidad, tenia tiempo que no escribia por aqui. =) Bueno quería su accesoria sobre lo ...
  #1 (permalink)  
Antiguo 22/03/2013, 07:37
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Información Esto esta correcto? ..

Buenas, primero que nada, saludos a todos los de esta comunidad, tenia tiempo que no escribia por aqui. =)

Bueno quería su accesoria sobre lo siguiente:

Estoy haciendo un sistema de notas, para los profesore sde mi universidad, entonces me encontre con estos problemas, que se repiten mucho los datos! queria saber como puedo hacer lo mismo que estoy haciendo pero sin que se repitan tantas veces los datos, yo lo estoy haciendo asi:

PRIMERO EXPLICARE LA EXTRUCTURA, PARA QUE ME PUEDAN ENTENDER MEJOR , ES SECILLA NO SE ASUSTEN POR TANTA LETRA, PORFAVOR, ES QUE YO HABLO MUCHO, PERO ES PARA QUE ENTIENDAN PERFECTAMENTE.

1) Los alumnos al registrarse eligen en una lista desplegable un prof, (esos select son dependientes, asi que depende del prof le dice la materia y depende de la materia le dice la seccion de su materia).

Le dan registrarse y esos datos se guardan en dos tablas:

La primera tabla

Es la de la informacion de ese alumno,
(ya que el sistema lo tengo que hacer muy dinamico y que el alumnno puede registrar diferentes materias. entonces los datos de el, no tienen nada que ver con las materias registradas asi que los datos se guardan en una tabla alumnnos

La segunda tabla:

Es donde se guarda la Materia y Seccion se llama seccion_alumnos,

---------------------------------------------
- id_alumnno / id_seccion / activo -
---------------------------------------------

(seccion tiene un id que es el que la indentifica, independiente de su numero de seccion, ya que si otro prof tiene la seccion 5, entonces para que no se confundieran los numeros d elas secciones, pues el indentificador es unico. y se llama id_seccion)

HASTA AQUI ES LA PARTE DE LOS ALUMNNOS.

AHORA SABIENDO ESO PUEDO EXPLICAR EL DILEMA! Aqui empieza la magia!


PARTE DE LOS PROFESORES

Como cada profesor puede colocar la cantidad de parciales (examenes) que quiera, entonces en una tabla llamada parciales :

1) El profesor se loguea, y el puede tener muchas secciones, cada seccion tiene un id_seccion el se mete en una seccion, (el id_seccion se carga por get asi se en que seccion esta el profesor.)

Cada profesor puede agregar la cantidad de parciales que quiera, entonces el le da al boton "AGREGAR PARCIAL" y coloca el nombre del parcial por ejemplo:
Parcial 1 ese nombre de parcial, y id_seccion se guardan en una tabla asi:

Parciales
----------------------------
- id_seccion / Parcial -
----------------------------


en su panel hay un apartado que se llama subir notas.
alli se carga un select con los parciales de la tabla PARCIALES.

Sigo en otro mensaje ya que no me cabe!
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #2 (permalink)  
Antiguo 22/03/2013, 07:46
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 4 meses
Puntos: 19
Respuesta: Esto esta correcto? ..

La intriga me esta matando
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 22/03/2013, 07:51
 
Fecha de Ingreso: septiembre-2011
Mensajes: 219
Antigüedad: 12 años, 7 meses
Puntos: 31
Respuesta: Esto esta correcto? ..

Cita:
Iniciado por ArkangelGammar Ver Mensaje
La intriga me esta matando
Jajajaja, tal cual!!!!
  #4 (permalink)  
Antiguo 22/03/2013, 07:57
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Esto esta correcto? ..

AQUI VIENE!! TODA MI EXPLICACIÓN SOLO PARA LLEGAR A ESTO:

lo selecciona, y le da subir notas. esto es lo que quiero que haga

(Que no se como hacerlo y no se si esta hecho de la manera correcta si ustedes me ayudan a estructurar todo esto de una mejor forma se los agradeceria mucho )

el selecciona el parcial por ejemplo parcial 1 le da al boton subir notas, y se copian todos los id_alummnos, id_seccion de la tabla seccion_alumnnos, (obvio que tengan el id_seccion correspondiente) a una tabla:

Parcial_alumnnos

----------------------------------------------------
- id_alumnno / id_seccion / parcial / nota-
-----------------------------------------------------

ASI CARGO LOS DATOS:

id_alumnno: Lo traigo de seccion alumnnos.
id_seccion: Lo traigo de la variable id_seccion que ya tenia agarrada anteriormente.
parcial: Es el parcial que el eligio en la lista desplegable.
Nota: Por default es 0

Entonces imaginen, eso es el primer parcial, ahora un ejemplo de 1 alumnno con 3 parciales!!! se copiarian los datros otra vez es decir por ejemplo, un alumno con 3 parciales:
------------------------------------------------------------
- id_alumnno / id_seccion / parcial / nota-
-------------------------------------------------------------
123 583 parcial 1 0
123 583 parcial 2 0
123 583 parcial 3 0


Imaginen si fuesen 40 alumnos, y cada uno tuviese 3 parciales.. :S esta es la forma correcta de hacerlo o no?

hay alguna manera de hacerlo mejor?

y otro problema que se me presenta es:

Que solo copia los de la "segunda tabla" entonces eso de segunda tabla, son los registrados en esa seccion cierto, pero por ejemplo si un alumnno no esta registrado en el momento que el prof pisa "subir notas" Y SELECCIONA PARCIAL 1. ese alumnno en la tabla anterior no tiene parcial 1. Si me entienden?

Entonces se me ocurrio hacer siempre una comparación de las dos tablas con un join left creo que se llama, para ver que alumnos no están en esa tabla etc.. pero no puedo hacerlo correctamente por que mi variable indentificadora, es decir id_alummno, se repite y repite y en la otra tabla "la segunda tabla" solo esta una vez. asi que la comparacion no me serviria no? para identificar que a ese alumnno le falta un parcial. =(


Así que se me ocurrió, hacer otra tabla que lleve un conteo de las veces que el profesor a subido notas, y lo compare con la cantidad de filas en una consulta, de dicho alumno, si es menor, entonces es que a ese alumno le falta un parcial, y le avisa al alumno que le pida al prof agregarlo a la tabla, ahora el problema, es .. cual parcial de todos los parciales, le falta?

Bueno como dije antes no se y creo que esto no es lo mas optimo! si me pueden AYUDAR PORFAVOR Y PERDONEN LA PALABRERIA SE QUE ESTO ES SUPER CORTO PERO YO HABLO MUCHO!
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #5 (permalink)  
Antiguo 22/03/2013, 08:26
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Esto esta correcto? ..

Ya me hice bolas enserio... hay gente que apenas explica su problema y tu te vas al otro extremo, jajajaja...

Mejor repasemos la temática a seguir sin tanto detalle, lo de las tablas lo vemos despues... si no sabemos que hacer, ni aunque creemos 100 tablas no servira.

1- El maestro se loguea
2- El maestro entra en subir nota
3- El maestro elige que examen
4- El maestro le da, CARGAR NOTAS
5- Obtiene los datos de todos los alumnos, siempre que califiquen para el parcial
6- sube las notas de cada uno

es asi, o me salte algo?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #6 (permalink)  
Antiguo 22/03/2013, 08:57
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Esto esta correcto? ..

Cita:
Iniciado por loncho_rojas Ver Mensaje
Ya me hice bolas enserio... hay gente que apenas explica su problema y tu te vas al otro extremo, jajajaja...

Mejor repasemos la temática a seguir sin tanto detalle, lo de las tablas lo vemos despues... si no sabemos que hacer, ni aunque creemos 100 tablas no servira.

1- El maestro se loguea
2- El maestro entra en subir nota
3- El maestro elige que examen
4- El maestro le da, CARGAR NOTAS
5- Obtiene los datos de todos los alumnos, siempre que califiquen para el parcial
6- sube las notas de cada uno

es asi, o me salte algo?

si te saltastes pero no mucho, por que lo que pasa es que el sistema tiene tres partes..

ADMIN: es direccion academica quien agrega los profesores que estaran en el sistema, estos, podran crear secciones de la materia que ellos deseen.

PROFESORES: Crean materias y secciones, las cuales aparecen en el formulario de registro, es decir en la lista desplegable. una vez que ellos crean sus materias con sus secciones, entrar a ellas, y suben notas a los alumnnos registrados de esa seccion.

ALUMNNOS: Solo consultan sus notas, y se meten also canales de stream del prof etc, ese punto no lo pregunto por que esta dominado. ellos no hacen ams que visualizar las notas, y unirse a las secciones que quieran, al principio tienen que pertenecer en alguna, pero luego pueden ir agregando las materias que ellos esten inscritas y que sus prof esten en el sistema por supuesto.

Al momento de registrarse eligen un prof,(como es un select dependiente entonces le desplegara las materias de dicho prof) una materia, (como tambien es dependiente, le desplegara las secciones de esa materia.) y elige por ultimo la seccion.

NOTA: esto es asi, pro lo que dije antes, ya que un prof puede agregar diferentes materias, y hasta una misma materia pero diferentes secciones, por ejemplo :
en los select:

Select 1) prof: xxxx
Select 2) Materia si tiene mas de una entonces saldran ej: programacion o calculo
Select 3) Seccion: igual si elige calculo, y tiene dos secciones de calculo entonces saldra para que eliga cual de esas dos.

Lo que importa aqui es solo la seccion a la final que dicha seccion es cargada de una tabla que se llama Secciones que tiene la estructura

id_prof / seccion / año /id_seccion

para poder cargar el id-seccion que va a ser registrado en la tabla: seccion alumnos "segunda tabla ".

TU equivocacion esta en el punto 5,

Donde dice: "Siempre que califiquen para el parcial". eso no lo entiendo muy bien, el selecciona parcial 1. pisa subir notas y en la otra tabla se cargarian todos los alumnnos de esa seccion, pero en la columnna parcial, va parcial 1.

6- va y edita las notas del parcial 1 de cada alumno.

------------------------------------------------------------------------------------------------
El problema radica en lo siguiente, ademas de repetirse muchas veces los datos, no se si eso sera malo,?

y ademas que no se hacer la copia de una tabla con otra.. =( y segundo, si un alumnno no se a registrado. ?

EJEMPLO: suponte que son 30 alumnnos en la seccion de ese prof.

El en clase les dice metance en la pagina ... y registrense y solo 20 se registran, el va a subir las notas del parcial 1. Entonces cuando hago la copia a la otra tabla, solo se copiarian esos 20. !

Luego a futuro, los 10 que quedaban, se registraron, el va a subir las notas del 2do parcial, entonces hay si se copian los 30 completos con la columnna parcial como parcial 2.

PERO VES EL DETALLE? aqui los 10 que faltaban NO tienen parcial 1..

ESTO LO HAGO DE ESTA MANERA POR QUE, los profesores pueden tener xs cantidad de parciales, unos prof tienen solo 3 parciales otros tienen solo 4. asi que tuve que hacerlo así, y luego en la consulta de parciales,
(parte de alumnnos) Hice un array de dos dimensiones y los resultados los puse como columnas.! (me costo media vida inventarlo).. y bueno.. así pues..

si no entiendes este detalle, puedo explicártelo mejor. en serio, jeje pero es que trato de no escribir mucho.
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #7 (permalink)  
Antiguo 22/03/2013, 09:02
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Esto esta correcto? ..

Dejate de joder.... te pregunte por la lógica y te vas por las ramas con las tablas y te precupas por eso... jajaja

PREGUNTAS CONCISAS requieren de RESPUESTAS CONCISAS

Olvidate de si necesitas 1 u 8 tablas y que datos van a tener.... Como construis un motor? Acaso lo primero que preguntas es si va a tener 4, 6 u 8 pistones, y cuantos tornillos vas a necesitar?

Lo primero que tenes que saber es el tipo de motor y cual va a ser su uso, despues ya sabras si es para Rally, F1, calle o camión... a partir de ahi armas la base... no antes de saber la logica de lo que debe realizar...

NO entiendo ni atras ni adelante lo que planteas porque no me cierra o que el USUARIO debe hacer, no me interesa lo que vos queres hacer ahora con tus tablas... no se si se entiende.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #8 (permalink)  
Antiguo 22/03/2013, 09:18
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Esto esta correcto? ..

Bueno, en pocas palabras, como cada prof puede tener la cantidad de parciales que desee! entonces hice una tabla con las columnnas asi:
------------------------------------------------------------
- id_alumnno / id_seccion / parcial / nota-
-------------------------------------------------------------

hago una consulta de todos los parciales de el id_alumnno y esa consulta la coloco como columnnas en una tabla en html .! Bien! y hago lo mismo con una consulta de las notas!!
para que asi la tabla en html generada por dichas consultas sea:

parcial 1 l parcial 2 l parcial 3
6 l 6 l 9


El problema esta? esto de que se repitan tantas veces los datos, es correcto o hay alguna manera de hacerlo mas corto?

Si es correcto, entonces me podrias decir como copiar todos los datos de una tabla a otra?
Y como comparar dos tablas, para saber que datos estan en una y en otra no?
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..
  #9 (permalink)  
Antiguo 22/03/2013, 09:21
Avatar de JoseGMariani  
Fecha de Ingreso: diciembre-2008
Ubicación: Edo Lara
Mensajes: 251
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Esto esta correcto? ..

Lo normal es mostrar los datos en forma de fila! si? es decir hacer 4 columnnas y a cada 1 la llamas parcial 1 parcial 2 ..4

y luego solo haces una consulta y imprimes en forma de fila. !
pero resulta que eso no puede ser asi, por que la impresion tiene que ser en forma de columnna, ademas no puedo crear una tabla con las columnnas parcial1.. 2.. ... ya que cade prof tiene que tener la posibilidad de crear cuantos parciales necesite para ese año. etc..

Mis preguntas concisas son las dos que hice en el mensaje de arriba.
__________________
"Nunca seas arrogante con los humildes, ni humilde con los arrogantes." Paulo Coelho..

Etiquetas: consulta-mysql, notas, php+bd+mysql, select, sistema, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:23.