Comunidad de diseño web y desarrollo en internet online

mostrar rango de edades con php

Citar            
MensajeEscrito el 24 Jul 2013 09:15 pm
Hola a todos los amantes, aficionados y profesionales del web developer. Me hago presente una vez mas por encontrarme con una laguna mental frente a una resolución de consulta a la base de datos.
El tema es así, necesito mostrar en pantalla el rango de edades de los alumnos inscriptos a los cursos a partir de la fecha de nacimiento. Mi idea es mostrar en una tabla algo así:

|17|18|19|20|21|22|23|24|25a29|30a34|35a39|40a44|47a49|50a54| +55 |
| 2 | 5 |10|18|50|20|56|89| 123 | 250 | 350 | 500 | 496 | 890 | 965 |

El problema es que en mi base de datos la tabla "alumnos" tiene el campo "fecha_nacimiento" en VARCHAR, pero tengo una a favor que todos los datos ingresados en el campo de texto fecha_de_nacimiento están en formato dia/mes/año y asi quedaron almacenados en la db. Necesito que me ayuden en hacer la consulta a la db y mostrar en pantalla el dato numérico de los rangos etarios. Todo esto estaría destinado a la composición estadística de los alumnos y cursos de la institución para la cual trabajo bajo dependencia.

Desde ya muchas gracias y quedo a la espera de su ayuda.

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Jul 2013 12:55 pm
Alguien que me pueda echar una mano?

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Jul 2013 04:31 pm
Los contadores de los rangos los llevaría en un array en PHP. El resto es recorrer la tabla calculando las edades y sumando en el contador correspondiente.

No lo veo tan difícil, lástima que no usaron el tipo de campo correcto para esto.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2013 07:47 pm
Después de un tiempo de tantas pruebas me he decidido hacerlo a través de una consulta sql creando una vista. algo como esto:

CREATE VIEW `AlumnosEdades` AS

SELECT apellido_nombre, YEAR( CURDATE() ) - YEAR(date_format( str_to_date(fecha_nacimiento, '%d/%m/%Y' ), '%Y%m%d' ) ) edad FROM alumnos
;

Esto devolvería en teoria un resultado asi:

SELECT * FROM AlumnosEdades;

nombre edad
Jose 25
Pepe 40

Sobre esto realizaría una consulta para sacar los rangos

SELECT COUNT(edad) cantidad FROM AlumnosEdades WHERE edad > 25;

Devuelve los alumnos con mas de 25

luego Uniria para mostrar mas rangos

SELECT COUNT(edad) cantidad FROM AlumnosEdades WHERE edad > 25
UNION ALL
SELECT COUNT(edad) cantidad FROM AlumnosEdades WHERE edad > 25 AND edad < 50 ;

Devuelve los alumnos de mas de 25 y menores a 5

El tema es que no pasé ni la primer consulta sql ya que cuando la ingreso ya sea desde la interfaz de mysql query browser como de phpmyadmin me tira un error 1064 y me dice que algo está equivocado en su sintax cerca de 'VIEW 'AlumnosEdades' AS SELECT apellido_nombre, YEAR( CURDATE()' en la linea 1 y no puedo hacer mas nada. El sistema que estoy modificando esta montado en una pc con linux debian samba 3.0.14 (un poco viejito) y la base esta bajo mysql 3.23.32.

Desde ya muchas gracias y espero que este hilo traiga un poco mas de repuercusión y haya mas gente que me pueda ayuda. Estoy un tanto desesperado con esto

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 31 Jul 2013 08:57 pm
1064 es un error de sintaxis en la consulta. Lo raro es que en MySQL 5.0 (que es la versión más a mano que tengo ahora mismo) no da ese error así que sospecho que la versión que tienes simplemente no soporta VIEW.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2013 10:14 pm
Muchas gracias por contestar. Lo mismo hice yo, lo hice desde mysql 5 y no tuve problema. Lo extraño que consultando en el manual en teoría si viene el view. El tema que no conozco nada de linux como para actualizar mysql. Como dije anteriormente el sistema está montado en un linux debian samba 3.0.14.

Por tvzbien

12 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.