Ver Mensaje Individual
  #19 (permalink)  
Antiguo 15/01/2014, 19:40
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 6 meses
Puntos: 977
Respuesta: Error en comentarios

Puedes concatenar los comentarios correspondientes a cada nota y agruparlos por nota.

Código MySQL:
Ver original
  1. SELECT A.*, GROUP_CONCAT(B.comentario) AS coment
  2.         notas A
  3.         comentarios B
  4.         A.pr_id = B.id_nota
  5.         A.pr_id
  6.         A.pr_id DESC

Con GROUP_CONCAT, concatenas todos los elementos que indicas entre los paréntesis y que agrupas al final de la consulta con GROUP BY, en donde especificamos que el campo pr_id de la tabla notas, será el dato bajo el que se agruparán los comentarios.

Y como ahora tienes los comentarios agrupados y con comas como separadores, o bien los muestras así, con comas, o los extraes de ese agrupamiento y los imprimes fila por fila, por ejemplo:

Código PHP:
Ver original
  1. for($i = 0; $datos = $sql->fetch(); $i++){
  2.     echo "Nota: " . $datos["nota"] . "<br />";
  3.     if (strlen($datos["coment"])){
  4.         echo "Comentarios: <br />";
  5.         echo "- " . str_replace(",", "<br />- ", $datos["coment"]);
  6.     }
  7.     echo "<br /><br />";
  8. }

El resultado sería este:

Código HTML:
Ver original
  1. Nota: Nota 1
  2. Comentarios:
  3. - Comentario 1 de Nota 1
  4. - Comentario 2 de Nota 1
  5.  
  6. Nota: Nota 2
  7. Comentarios:
  8. - Comentario 1 de Nota 2
  9.  
  10. Nota: Nota 3
  11. Comentarios:
  12. - Comentario 1 de Nota 3
  13. - Comentario 2 de Nota 3
  14. - Comentario 3 de Nota 3

Con la función str_replace, reemplazo todas las comas que separan a los comentarios por saltos de línea y guiones, para así imprimirlos como una lista de comentarios. Los comentarios solamente se mostrarán si la extensión de los mismo es mayor a cero, es decir, si existen comentarios, lo cual compruebo con la función strlen.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 16/01/2014 a las 13:16