Ver Mensaje Individual
  #21 (permalink)  
Antiguo 31/03/2014, 11:33
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con Orden de consulta

Cita:
Iniciado por rakshaka Ver Mensaje
Ahi arreglé un poco el código y ahora si se ve bien pero el orden sigue estando mal, osea, no me toma por orden el P.orden ASC

NO PUEDE SER TAN DIFICIIIIIIIIIIIIIIIIIL!
Vamos al punto: No puede mostrarte ese orden, porque en el INSERT de esos conceptos no lo incluyes:
Código MySQL:
Ver original
  1. mysql> INSERT INTO `productos` (`producto_id`, `nombre`, `nombre_en`, `descripcion`, `descripcion_en`, `imagen`, `categoria_padre`, `orden`) VALUES
  2.     -> (2, 'Valvulas esféricas; Globo y otras; Manuales y Actuadas', NULL, 'asd',NULL, '552737Foto2.jpg', 2, ''),
  3.     -> (7, 'Caños Y Accesorios de PPV', NULL, 'asd', NULL, '4722761.2.jpg', 1, ''),
  4.     -> (8, 'Roscado De Caños: Niples Y Puntas De Rosca', NULL, 'asd', NULL, '6539560150.jpg', 1, ''),
  5.     -> (9, 'Accesorios De Acero Para Soldar', NULL, 'asd', NULL, '8693971.4.jpg', 1, '');
Como puedes ver, el campo orden, el último, no lo estás insertando en estos datos de prueba.
En todo caso puede ser un error al momento de crear tus datos, pero no es un error de MySQL.
Distinto sería si le pones datos:
Código SQL:
Ver original
  1. INSERT INTO `productos` (`producto_id`, `nombre`, `nombre_en`, `descripcion`, `descripcion_en`, `imagen`, `categoria_padre`, `orden`)
  2. VALUES
  3. (2, 'Valvulas esféricas; Globo y otras; Manuales y Actuadas', NULL, 'asd',NULL, '552737Foto2.jpg', 2, 3),
  4. (7, 'Caños Y Accesorios de PPV', NULL, 'asd', NULL, '4722761.2.jpg', 1, 4),
  5. (8, 'Roscado De Caños: Niples Y Puntas De Rosca', NULL, 'asd', NULL, '6539560150.jpg', 1, 1),
  6. (9, 'Accesorios De Acero Para Soldar', NULL, 'asd', NULL, '8693971.4.jpg', 1, 2);
Y además si cambias la forma de ordenarlo:
Código MySQL:
Ver original
  1.     C . *,
  2.     GROUP_CONCAT(P.nombre) nombres,
  3.     GROUP_CONCAT(P.imagen) img,
  4.     GROUP_CONCAT(P.producto_id) idProductos
  5.     categorias C
  6.         INNER JOIN
  7.     productos P ON C.categoria_id = P.categoria_padre
  8. GROUP BY categoria_id ASC
  9. ORDER BY P.orden ASC, C.categoria_id ASC;
o bien:
Código MySQL:
Ver original
  1.     C . *,
  2.     GROUP_CONCAT(P.nombre) nombres,
  3.     GROUP_CONCAT(P.imagen) img,
  4.     GROUP_CONCAT(P.producto_id) idProductos
  5.     categorias C
  6.         INNER JOIN
  7.     productos P ON C.categoria_id = P.categoria_padre
  8. GROUP BY categoria_id ASC
  9. ORDER BY P.orden DESC, C.categoria_id ASC;

Por cierto, la query a mi me devuelve al menos dos registros, pero si quieres todo:

Código MySQL:
Ver original
  1.     C . *,
  2.     IFNULL(GROUP_CONCAT(P.nombre), '') nombres,
  3.     IFNULL(GROUP_CONCAT(P.imagen), '')  img,
  4.     IFNULL(GROUP_CONCAT(P.producto_id), '')  idProductos
  5.     categorias C
  6.         LEFT JOIN
  7.     productos P ON C.categoria_id = P.categoria_padre
  8. WHERE TRUE OR P.categoria_padre IS NULL
  9. GROUP BY categoria_id ASC
  10. ORDER BY P.orden DESC, C.categoria_id ASC;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)