Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/03/2014, 06:05
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
a ver si funciona ese... porque pusiste NAME en rojo?
No lo puse yo. Se resalta solo por el etiquetado del código.
Por lo demás, sólo copié lo que estabas intentando poner, sólo que le puse acentos agudos (`), como manda MySQL obligatoriamente cuando usas palabras reservadas por nombres de objetos en base.
Nota: Nunca uses como nombres palabras simples de inglés. Terminarás usando palabras reservadas de MySQL, lo que generarán errores sintácticos indetectables.

Consejos:
- No generes la query en la misma llamada a la baje. Usa una variable, de modo que luego puedas verificar con un simple echo, si la sintaxis es correcta.
- Costruye las consultas de una forma estructurada, de modo de poder verla más facilmente.
- No uses "*" en las consultas, en especial cuando usas JOINs, ya que puedes duplicar las columnas con idéntico nombre de diferentes tablas y eso generar errores. Invoca específicamente las columnas que vas a usar, y nada más que esas.
Código PHP:
Ver original
  1. $qry = "SELECT *
  2. FROM  (SELECT
  3.      C.*,
  4.      GROUP_CONCAT(P.nombre) nombres,
  5.      GROUP_CONCAT(P.imagen) img,
  6.      GROUP_CONCAT(P.producto_id) idProductos
  7.      FROM categorias C INNER JOIN productos P ON C.categoria_id = P.categoria_padre
  8.      ORDER BY C.categoria_id ASC, P.orden ASC) T1
  9. GROUP BY categoria_id";
  10. echo $qry;
  11.  
  12. $result = mysql_query($qry);

Nota 2: No es necesario poner el AS para los alias. Es obsoleto desde hace años, irrelevante y sólo agrega problemas para leer.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)