Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/06/2010, 10:57
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: como puede hacer este select en mysql

Es un problema de SQL, no de PHP, sería mejor tratarlo en el foro de BBDDD, pero te puedo adelantar algo;
El problema es que el ordenamiento es posterior a la agrupación, por lo que primero agrupa en el orden en que encuentra los registros y recién allí ordena. Eso hace que el primer registro encontrado "esconda" a los demás, y como el orden de lectura es el orden cronológico ascendente, el primero de la lista es el más viejo, no el mas nuevo.
La solución más sencilla es meter todo esto en una subconsulta, y que recién se agrupe en la exterior:
Código MySQL:
Ver original
  1. SELECT tema, autor, fecha, categoria
  2.   (SELECT tema, autor, fecha, categoria
  3.   FROM temas
  4.   ORDER BY fecha DESC)  T1
  5. GROUP BY categoria;

En PHP sería:
Código PHP:
Ver original
  1. $sql = "SELECT tema, autor, fecha, categoria"
  2. $sql .= "FROM"
  3. $sql .= "  (SELECT tema, autor, fecha, categoria"
  4. $sql .= "  FROM temas "
  5. $sql .= "  ORDER BY fecha DESC)  T1"
  6. $sql .= "GROUP BY categoria;"
  7.  
  8. $registro=mysql_query($sql,$conexion)
  9. or die("Problemas en el SELECT: ".mysql_error());
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)