Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

DUda con consulta y mostrar resultados en PHP

Estas en el tema de DUda con consulta y mostrar resultados en PHP en el foro de Bases de Datos General en Foros del Web. Hola, tengo las tablas Profesores id Nombre y Jornada id dia horas_trabajadas id_profesor y quiero mostrar cada profesor con todas las horas de trabajo por ...
  #1 (permalink)  
Antiguo 17/06/2011, 10:13
 
Fecha de Ingreso: abril-2009
Mensajes: 80
Antigüedad: 15 años
Puntos: 0
DUda con consulta y mostrar resultados en PHP

Hola, tengo las tablas

Profesores
id
Nombre

y

Jornada
id
dia
horas_trabajadas
id_profesor

y quiero mostrar cada profesor con todas las horas de trabajo por dia para lo cual hago:

select * from profesores, jornada where profesores.id=jornada.id_profesor

y quiero mostrar los datos de la sigiuiente manera:
Nombre Dia1 Dia2 Dia3 .......................

pero no se como hacer para ello pues con un simple ciclo mostraria el nombre del profesor tantas veces como jornadas laboradas tenga, alguien sabe como hacer?
  #2 (permalink)  
Antiguo 22/06/2011, 01:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: DUda con consulta y mostrar resultados en PHP

Código MySQL:
Ver original
  1. from jornada;

Con esta consulta obtienes las columnas a desplegar.

Código MySQL:
Ver original
  1. select p.id,p.nombre,
  2. j.dia,sum(j.horas_trabajadas) as Horas
  3. from profesores left join jornada
  4. on profesores.id=jornada.id_profesor
  5. GROUP BY p.id,p.nombre,j.dia;

Con esta las horas trabajadas por profesor y dia.

Con estos datos debes montar una combinación de bucles con php que te construyan la tabla de datos cruzados...


Código HTML:
Ver original
  1. Profesor......Dia1....Dia2....Dia3....Dia4 ....
  2. Pepe.............-.......3.......4.......-
  3. Matilde..........3.......2.......-.....

El propio php te puede dar el total horas trabajadas por profesor pero si lo quieres sacar de la base de datos

Código MySQL:
Ver original
  1. select p.id,p.nombre,sum(j.horas_trabajadas) as Horas
  2. from profesores left join jornada
  3. on profesores.id=jornada.id_profesor
  4. GROUP BY p.id,p.nombre;

En el foro de PHP por tabla datos cruzados seguramente encontraras mejores explicaciones que las que te podamos dar en bbdd
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 22/06/2011 a las 01:50

Etiquetas: mysql, bases-de-datos
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 11:32.