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

Agrupar resultados por familias

Estas en el tema de Agrupar resultados por familias en el foro de Mysql en Foros del Web. Buenas a todos Estoy empezando con bases de datos y he realizado consultas básicas. Ahora me encuentro con un problema en principio sencillo pero no ...
  #1 (permalink)  
Antiguo 30/04/2010, 04:34
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Agrupar resultados por familias

Buenas a todos

Estoy empezando con bases de datos y he realizado consultas básicas. Ahora me encuentro con un problema en principio sencillo pero no acabo de ver la luz. A ver si me podeis echar un cable por favor.

Tengo una tabla con dos campos (o mejor dicho los que quiero usar) "familia" y "nombre_producto"

familia-----------------nombre_poducto
rojo--------------------producto 1
rojo--------------------producto 2
amarillo ----------------producto 3
rojo--------------------producto 4

Necesito hacer la consulta para me muestre en una lista todos los producto de cada familia , debajo del título de la familia. Algo Así:

rojo
producto 1
producto 2
producto 4

amarillo
producto 3

El código que tengo es este:

Código:
mysql_connect($dbhost,$dbuser,$dbpasswd);
mysql_select_db($dbname);
	$sql = "SELECT familia, nombre_producto FROM catalogo GROUP BY familia";
	$result = mysql_query($sql) or die(mysql_error());
	while($row = mysql_fetch_array($result)){
	echo $row['familia'] ." <br>" .$row['nombre_producto'] ." <br>";
	}

Así solo me muestra el primer nombre de cada familia:

rojo
producto 1

amarillo
producto 3

Intuyo que la solución es bien sencilla, pero no doy con ella. Una ayudita por favor.

Última edición por gainza; 30/04/2010 a las 05:14
  #2 (permalink)  
Antiguo 03/05/2010, 02:42
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Agrupar resultados por familias

"SELECT familia, nombre_producto FROM catalogo ORDER BY familia, nombre_producto"

Es tan sencillo y complicado como esto.

En realidad la mejor forma de solucionarlo esta en php o el lenguaje que uses sql no te lo resolvera de una forma facil.

Puedes hacer un bucle sobre la consulta anterior que controle el cambio de familia para mostrar el titulo...

O puede hacer una primera consulta de las familias

SELECT familia FROM catalogo GROUP BY familia

y al mismo tiempo que la recorres consultar los productos de cada una

SELECT nombre_producto FROM catalogo WHERE familia=$familia ORDER BY nombre_producto

Lo ideal seria tener una tabla con las familias....


Quim

Etiquetas: agrupar, resultados
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 02:22.