Ver Mensaje Individual
  #23 (permalink)  
Antiguo 01/04/2014, 07:18
rakshaka
 
Fecha de Ingreso: mayo-2009
Mensajes: 166
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Problema con Orden de consulta

No, no me los ordena :( imposible...

Dependiendo lo que uso me cambia o el orden de la categoría o el orden del producto dentro.

El tema del orden como NULL no va a ser Null ya le puse a todos un número pero su uso esto:

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.     FROM
  6.         categorias C
  7.             INNER JOIN
  8.         productos P ON C.categoria_id = P.categoria_padre
  9.     GROUP BY categoria_id ASC
  10.     ORDER BY P.orden ASC, C.categoria_id ASC;

Me desordena las categorias que estan ordenadas por categoria_id en ASC aunque los sigue agrupando bien y respeta el orden.

Entonces cambio a
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.     FROM
  6.         categorias C
  7.             INNER JOIN
  8.         productos P ON C.categoria_id = P.categoria_padre
  9.     GROUP BY categoria_id ASC
  10.     ORDER BY C.categoria_id ASC, P.orden ASC;

Y entonces me los ordena por categoría pero no por orden.
Estoy seguro de que no logra entender que dentro de cada categoría debe ordenar los productos independientemente del resto de los productos.

El codigo que levanta y ordena es este:

Código PHP:
Ver original
  1. <?php
  2.     $qry = "SELECT
  3.        C . *,
  4.        GROUP_CONCAT(P.nombre) nombres,
  5.        GROUP_CONCAT(P.imagen) img,
  6.        GROUP_CONCAT(P.producto_id) idProductos
  7.    FROM
  8.        categorias C
  9.            INNER JOIN
  10.        productos P ON C.categoria_id = P.categoria_padre
  11.    GROUP BY categoria_id ASC
  12.    ORDER BY P.orden ASC, C.categoria_id ASC;";
  13.     //$qry = "SELECT * FROM  (SELECT C.*, GROUP_CONCAT(P.nombre) nombres, GROUP_CONCAT(P.imagen) img, GROUP_CONCAT(P.producto_id) idProductos FROM categorias C INNER JOIN productos P ON C.categoria_id = P.categoria_padre ORDER BY C.categoria_id ASC, P.orden ASC) T1 GROUP BY categoria_id"; $query = mysql_query($qry);
  14.     $query = mysql_query($qry);
  15.     if (mysql_num_rows($query)){
  16.         $catactual = NULL;
  17.         while ($row = mysql_fetch_array($query)){
  18.             if ($catactual != $row["categoria_id"]){
  19.                 $catactual = $row["categoria_id"];
  20.     ?>
  21.                 <div class = "recent-projects">
  22.                     <h4 class="title">
  23.                         <span>
  24.                             <?php echo $row["categoria_nombre"]?>
  25.                         </span>
  26.                     </h4>
  27.                     <div class = "projects-carousel touch-carousel">
  28.     <?php
  29.                         $nombres = explode(",", $row["nombres"]);
  30.                         $imagenes = explode(",", $row["img"]);
  31.                         $id = explode(",", $row["idProductos"]);
  32.                         for ($i = 0, $limite = count($nombres); $i < $limite; $i++){
  33.     ?>            
  34.                             <div class = "portfolio-item item">
  35.                                 <div class = "portfolio-border">
  36.                                     <div class = "portfolio-thumb">
  37.                                         <a href = "producto.php?producto_id=<?php echo $id[$i]; ?>">
  38.                                             <div class="thumb-overlay">
  39.                                                 <i class="icon-feather"></i>
  40.                         </div>
  41.                                             <img src="http://www.forosdelweb.com/f18/productos/<?php echo $imagenes[$i]; ?>" />
  42.                                         </a>
  43.                                     </div>
  44.                                     <div class="portfolio-details">
  45.                                         <a href = "producto.php?producto_id=<?php echo $id[$i]; ?>">
  46.                                             <h4><?php echo $nombres[$i]?></h4></a>
  47.                                     </div>
  48.                                     <a href="borrar-producto.php?producto_id=<?php echo $id[$i]; ?>" class="like-link"  onclick="javascript:return confirm('¿Desea borrar ésta Categoría? NO VOLVERA A APARECER...')"><i class="icon-attention-2"></i><span>BORRAR</span></a>
  49.                                 </div>
  50.                             </div>
  51.     <?php
  52.                         }
  53.     ?>                  
  54.                     </div>
  55.                 </div>
  56.                 <div class="hr1" style="margin-bottom:40px;"></div>
  57.     <?php
  58.             }
  59.         }
  60.     }
  61.     ?>