PHP - Tengo problemas en una query MySQL para mostrar varias fechas en una fila

 
Vista:
sin imagen de perfil
Val: 52
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Tengo problemas en una query MySQL para mostrar varias fechas en una fila

Publicado por Juan juan.salinas.aedo@gmail.com (31 intervenciones) el 03/04/2019 18:19:45
Chicos, aca dando vueltas nuevamente con una consulta SQL, resulta que tengo 2 tablas: en la tabla "cursos" guardo los datos relacionados con un curso, aca les dejo la foto,


foto1

y en la tabla "jornadas_curso" guardo las fechas de cada curso, ya que cada curso puede tener mas de 1 fecha, esta es la tabla:


foto2

En la pagina principal muestro por array cada curso, con su fecha y jornada, sin embargo, si un curso tiene mas de 1 fecha, solo me muestra 1 fecha...


foto3

La consulta SQL que ocupo para consultar por los cursos es este:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
cursos.nombre_curso, cursos.id_curso,
DATE_FORMAT( jornadas_curso.fechas_curso, '%d/%m/%y' ) AS Fechas_Cursos,
jornadas_curso.horario_curso,
jornadas_curso.tipo_jornada,
cursos.id_relator,
cursos.descripcion,
cursos.vacantes,
cursos.ubicacion
FROM cursos
INNER JOIN jornadas_curso ON jornadas_curso.id_curso = cursos.id_curso
AND disponible = 'si'
AND vacantes >0
AND fechas_curso > NOW( )
GROUP BY nombre_curso
ORDER BY fechas_curso DESC

Lo coloque como group by nombre_curso, ya que si un curso tenia mas de 1 fecha, aparecia mas de 1 fila con el nombre de curso repetido pero diferentes fechas...

El resultado actualmente de mi query en mysql es este:


foto7

Lo que necesito es que, por cada fila, me muestre el nombre del curso, sus datos y todas sus fechas disponibles, algo asi:


foto5

También probé colocando GROUP_CONCAT para el campo Fechas_Cursos así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT cursos.nombre_curso,
cursos.id_curso,
GROUP_CONCAT( jornadas_curso.fechas_curso + ' -- ' ) AS Fechas_Curso,
jornadas_curso.horario_curso,
jornadas_curso.tipo_jornada,
cursos.id_relator,
cursos.descripcion,
cursos.vacantes,
cursos.ubicacion
FROM cursos
INNER JOIN jornadas_curso ON jornadas_curso.id_curso = cursos.id_curso
AND disponible = 'si'
AND vacantes >0
AND fechas_curso > NOW( )
GROUP BY nombre_curso
ORDER BY fechas_curso ASC

Y me dio este resultado en el phpmyadmin:


foto6

¿Que me falta en la query SQL?, muchas gracias por cualquier ayuda...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.865
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Tengo problemas en una query MySQL para mostrar varias fechas en una fila

Publicado por Alejandro (577 intervenciones) el 03/04/2019 18:54:21
Quizás así:
1
... GROUP_CONCAT( jornadas_curso.fechas_curso ORDER BY  jornadas_curso.fechas_curso SEPARATOR ' -- ') AS Fechas_Curso,...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 52
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Tengo problemas en una query MySQL para mostrar varias fechas en una fila

Publicado por Juan (31 intervenciones) el 03/04/2019 20:10:59
Hola estimado, deje el group_concat como dijiste,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT cursos.nombre_curso,
cursos.id_curso, GROUP_CONCAT( jornadas_curso.fechas_curso ORDER BY jornadas_curso.fechas_curso SEPARATOR  ' -- ' ) AS Fechas_Curso,
jornadas_curso.horario_curso,
jornadas_curso.tipo_jornada,
cursos.id_relator,
cursos.descripcion,
cursos.vacantes,
cursos.ubicacion
FROM cursos
INNER JOIN jornadas_curso ON jornadas_curso.id_curso = cursos.id_curso
AND disponible =  'si'
AND vacantes >0
AND fechas_curso > NOW( )
GROUP BY nombre_curso
ORDER BY fechas_curso ASC

Sin embargo, aun me aparece el campo "Fechas_Cursos" como BLOB (adjunto imagen),


foto8

¿Cual puede ser el problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 997
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Tengo problemas en una query MySQL para mostrar varias fechas en una fila

Publicado por italo_pm (144 intervenciones) el 04/04/2019 11:32:02
Hola

te retorna NULL (BLOB) por que no respeta el campo fechas_curso (date) como formato valido.

Probaria la query sin necesidad de darle un formato al campo fechas_curso, lo dejaria YYYY-MM-DD, luego cuando funcione la query haces lo que desees.



Podrias hacer una tercera tabla, donde le pasas el id del curso y el id de la jornada,

para el horario curso, hubiera hecho campos de inicio y fin, para la fecha tambien.

para tipo jornada tambien otra tabla y la relacionabas.

salud2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar