Foros del Web » Programando para Internet » PHP »

¿Cómo ordenar por grupos?

Estas en el tema de ¿Cómo ordenar por grupos? en el foro de PHP en Foros del Web. Hola amigos, Mi consulta es la siguiente: Tengo dos tablas: 1.- Categorias id_cat nombre_cat 2.- Productos id_prod nombre_prod id_cat La primera tabla "Categorias" tiene los ...
  #1 (permalink)  
Antiguo 13/05/2008, 22:46
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 6 meses
Puntos: 0
Pregunta ¿Cómo ordenar por grupos?

Hola amigos,
Mi consulta es la siguiente:

Tengo dos tablas:

1.- Categorias
id_cat
nombre_cat

2.- Productos
id_prod
nombre_prod
id_cat

La primera tabla "Categorias" tiene los siguientes registros:
id_cat nombre_cat
1 - Categoria A
2 - Categoria B
3 - Categoria C

Ok entonces tengo varios registros en la segunda tabla "Productos" de la siguiente manera:
id nombre id_cat
1 - Producto A - 1
2 - Producto B - 1
3 - Producto C - 1
4 - Producto D - 2
5 - Producto E - 3

Lo que necesito es hacer un SELECT que mas o menos seria "SELECT * FROM Productos where id='$id' ORDER BY id_cat DESC, nombre DESC";

Lo que necesito es que al mostrar el resultado que basicamente seria:

Producto A - 1
Producto B - 1
Producto C - 1
Producto D - 2
Producto E - 3

Pero necesito que salgan tambien ordenados por su categoria es decir:

Categoria A
- Producto A
- Producto B
- Producto C

Categoria B
- Producto D

Categoria C
- Producto E

Eso es todo lo que necesito, ojala se entienda y puedan ayudarme.

Muchas gracias.

Saludos.
__________________
ChilenoCesar Looking for something new...
  #2 (permalink)  
Antiguo 14/05/2008, 01:15
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Re: ¿Cómo ordenar por grupos?

si lo que quieres es ordenar alfabeticamente por el nombre de la categoria lo que tienes q hacer es juntar las tablas, seria lago asi

select * from categorias c join producto p using (id_cat) order by c.nombre_cat, p.nombre_prod
__________________
Degiovanni Emilio
developtus.com
  #3 (permalink)  
Antiguo 09/10/2009, 11:22
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: ¿Cómo ordenar por grupos?

Hola, es un poco viejito el post, pero estoy buscando exactamente algo asi.
Revivo el tema a ver si alguien sabe como se hace.

Saludos.
  #4 (permalink)  
Antiguo 09/10/2009, 16:57
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: ¿Cómo ordenar por grupos?

Bueno, pues para esto hice lo siguiente

1.
create table lascategorias (id_cat int(3) primary key auto_increment ,nombre_cat varchar(30) not null);
create table losproductos (id_prod int(3) primary key auto_increment ,nombre_prod varchar(30) not null, id_cat int(3) not null);
2.
insert into lascategorias(nombre_cat) VALUES
('Categoria A'),
('Categoria B'),
('Categoria C');
insert into losproductos (nombre_prod, id_cat) VALUES
('Producto A',1),
('Producto B',1),
('Producto C',1),
('Producto D',2),
('Producto E',3);
3.
$conn = mysql_connect("localhost", "mortiweb_test", "test");

mysql_select_db("test");
$var = '';
$query = mysql_query ('select nombre_cat, nombre_prod from lascategorias c join losproductos p using (id_cat) order by c.nombre_cat, p.nombre_prod');
while( $result = mysql_fetch_array($query))
{
if( $var != $result['nombre_cat'])
{$var = $result['nombre_cat'];
echo $var.'<br>';
}
echo " - ".$result['nombre_prod'].'<br>';
}
A ver si eso es lo que buscaban
saludos
  #5 (permalink)  
Antiguo 10/10/2009, 07:50
 
Fecha de Ingreso: mayo-2006
Mensajes: 119
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: ¿Cómo ordenar por grupos?

EXCELEEENTE hermano!!!

Muchas gracias por tu predisposición, tema resuelto.

Saludos.
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 03:00.