Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Agrupar intervalo de edades en php mysql

Estas en el tema de Agrupar intervalo de edades en php mysql en el foro de PHP en Foros del Web. Saludos a los Amigos del foro tengo un problema para ordenar por grupo o intervalo de edades el resultado que me genera el siguiente codigo: ...
  #1 (permalink)  
Antiguo 14/09/2014, 20:05
 
Fecha de Ingreso: septiembre-2014
Ubicación: Venezuela
Mensajes: 3
Antigüedad: 10 años, 2 meses
Puntos: 0
Agrupar intervalo de edades en php mysql

Saludos a los Amigos del foro tengo un problema para ordenar por grupo o intervalo de edades el resultado que me genera el siguiente codigo:

<?php
//Conexion a la base de datos
$conexion=mysql_connect("localhost","root","123456 ");
mysql_select_db("bd_prueba",$conexion);
?>
<?php
////Obteniendo registros de la base de datos a traves de una consulta SQL
$consulta="SELECT (
YEAR( CURDATE( ) ) - YEAR( fecha_nac )
) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( fecha_nac, 5 ) ) AS edades, COUNT( * ) AS cantidad
FROM jefe_familia
GROUP BY edades
ORDER BY fecha_nac ASC";
$resultado=mysql_query($consulta,$conexion);
?>
Edad: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cantidad:<br>
<?php
//esta es la mejor manera de mostrar los resultado
while($rows=mysql_fetch_array($resultado)){

echo $rows[0]."&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;";
echo $rows[1]."&nbsp;&nbsp;&nbsp;&nbsp;<br>";
}
?>

lo que necesito es que me imprima cuantas personas tengo de 0 a 11 años, de 12 a 19 años, de 20 a 55 y mayores a 55.

Ya logre que me imprimiera en total por edad, pero no he podido lograr que me imprima por intervalos, de antemano le agradezco su ayuda
  #2 (permalink)  
Antiguo 15/09/2014, 05:24
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Agrupar intervalo de edades en php mysql

Un condicional anidado....

Código MySQL:
Ver original
  1. if((YEAR( CURDATE( ) ) - YEAR( fecha_nac )
  2. ) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( fecha_nac, 5 ) ))<=11,' 0-11',if((YEAR( CURDATE( ) ) - YEAR( fecha_nac )
  3. ) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( fecha_nac, 5 ) ))<=19,'12-19',if((YEAR( CURDATE( ) ) - YEAR( fecha_nac )
  4. ) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( fecha_nac, 5 ) ))<=55,'20-55','55<'))) edades,, COUNT( * ) AS cantidad
  5. FROM jefe_familia
  6. GROUP BY edades;
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 15/09/2014, 06:38
 
Fecha de Ingreso: septiembre-2014
Ubicación: Venezuela
Mensajes: 3
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Agrupar intervalo de edades en php mysql

Saludos de nuevo quimfv, disculpa la molestia pero al realizar la consulta me da el siguiente error:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')&lt;=11,'0-11',if((YEAR( CURDATE( ) ) - YEAR( fecha_nac ) ) - ( RIGHT( CURDATE' at line 3

Última edición por gekonidae; 15/09/2014 a las 15:42 Razón: no me funciono
  #4 (permalink)  
Antiguo 16/09/2014, 04:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Agrupar intervalo de edades en php mysql

Código MySQL:
Ver original
  1.    if((YEAR(CURDATE())-YEAR(fecha_nac))-(RIGHT(CURDATE(),5) < RIGHT(fecha_nac,5)) <=11,' 0-11',
  2.    if((YEAR(CURDATE())-YEAR(fecha_nac))-(RIGHT(CURDATE(),5) < RIGHT(fecha_nac,5)) <=19,'12-19',
  3.    if((YEAR(CURDATE())-YEAR(fecha_nac))-(RIGHT(CURDATE(),5) < RIGHT(fecha_nac,5)) <=55,'20-55','55<'))) edades,  
  4.    COUNT(*) AS cantidad
  5. FROM jefe_familia
  6. GROUP BY edades;

Si había unos parentesis de mas y una coma de mas.... recuerda no es nada aconsejable, copiar y pegar, esos errores sintacticos podías haberlos corregido tu mismo.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 16/09/2014, 07:12
 
Fecha de Ingreso: septiembre-2014
Ubicación: Venezuela
Mensajes: 3
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Agrupar intervalo de edades en php mysql

Buen dia quimfv, ahora si funciono, estoy inmensamente agradecido por tu ayuda, Gracias Hermano
  #6 (permalink)  
Antiguo 16/09/2014, 07:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Agrupar intervalo de edades en php mysql

SI me permiten meter bocadillo, yo aprovecharía funciones más eficientes de MySQL para ese cálculo, y de ese modo hacerlo mas legible al menos:
Código MySQL:
Ver original
  1.     IF(TIMESTAMPDIFF(YEAR, fecha_nac, CURDATE())<= 11, ' 0-11',
  2.     IF(TIMESTAMPDIFF(YEAR, fecha_nac, CURDATE())<= 19,'12-19',
  3.     IF(TIMESTAMPDIFF(YEAR, fecha_nac, CURDATE())<= 55, '20-55', '55<'))) edades,  
  4.    COUNT(*) cantidad
  5. FROM jefe_familia
  6. GROUP BY edades;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: agrupar, intervalo, mysql, registro, select, sql
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 08:31.