Foros del Web » Programando para Internet » PHP »

Ordenar salida de consulta mysql

Estas en el tema de Ordenar salida de consulta mysql en el foro de PHP en Foros del Web. Buenas, Tengo una base de datos donde los productos se establecen por categorias La base de datos tiene la forma siguiente Producto Categoria Pimientos Primera ...
  #1 (permalink)  
Antiguo 15/03/2015, 05:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 8 meses
Puntos: 11
Ordenar salida de consulta mysql

Buenas,

Tengo una base de datos donde los productos se establecen por categorias

La base de datos tiene la forma siguiente

Producto Categoria
Pimientos Primera
Pepinos Premium
Tomates Cuarta
Ensalada Primera


Si quiero sacar de forma ordenada los porductos en función de la categoría, queriendo que se muestren primero los premium, luego los de primera, luego segunda, luego tercera y luego cuarta....

¿Cómo puedo hacerlo?

He probado a hacer esta consulta:

SELECT producto FROM basededatos ORDER BY Categoria DESC

Pero claro, esto me ordena primero los de cuarta, luego los Premium, luego Primera, luego segunda... y no es lo que quiero

He pensado en solucionarlo haciendo 5 consultas, uan por cada categoria, de la forma
SELECT producto FROM basededatos WHERE Categoria = Premium
mostrar los resultados y luego mostrar la siguiente categoria

SELECT producto FROM basededatos WHERE Categoria = Primera

.....


Pero estoy convencido que tiene que haber una solcuión más sencilla.

¡¡¡Muchas gracias!!!
  #2 (permalink)  
Antiguo 15/03/2015, 06:38
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: Ordenar salida de consulta mysql

Nadie usa nombres de categorías en esa etapa. Se usan números, que se ordenan mejor, junto a una tabla de categorías para obtener la descripción o denominación de la misma.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/03/2015, 07:43
 
Fecha de Ingreso: marzo-2009
Mensajes: 395
Antigüedad: 15 años, 8 meses
Puntos: 11
Respuesta: Ordenar salida de consulta mysql

Cómo puedo crear entonces una nueva columna y si la categoria es Premium darle un valor 1, si es primera un valor 2 y así, desde mysql, sin usar php???
  #4 (permalink)  
Antiguo 15/03/2015, 09:25
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: Ordenar salida de consulta mysql

Creo que no estás entendiendo: Para que tu sistema funcione como deseas y bien requiere dos tablas:
1) Producto(id_producto, nombre, id_categoria, ...)
2) Categoría(id_categoria, descripcion)

Luego, en base a eso numeras de la 1 en adelante las categorías, y una consulta que te las devuelva ordenadas sería algo como:
Código MySQL:
Ver original
  1. SELECT p.nombre, c.descripcion
  2. FROM producto P INNER JOIN categoria C ON P.id_categoria = C.id_cagtegoria
  3. ORDER BY C.idcategoria
Con eso te saldrían ordenadas por la categoría numéricamente, y no alfabeticamente por su descripción, sin necesidad de ver los ID que las identifican en su tabla.


¿Se entiende?

Bueno, todo esto no es tema de PHP, sino de Base de Datos, donde te recomiendo pregutnar los temas de este tipo.
__________________
¿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: mysql, salida, select
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 19:49.