Puedes concatenar los comentarios correspondientes a cada nota y agruparlos por nota.
Código MySQL:
Ver original notas A
comentarios B
A.pr_id = B.id_nota
A.pr_id
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 originalfor($i = 0; $datos = $sql->fetch(); $i++){
echo "Nota: " . $datos["nota"] . "<br />";
if (strlen($datos["coment"])){ echo "Comentarios: <br />";
echo "- " . str_replace(",", "<br />- ", $datos["coment"]); }
echo "<br /><br />";
}
El resultado sería este:
Código HTML:
Ver originalNota: Nota 1
Comentarios:
- Comentario 1 de Nota 1
- Comentario 2 de Nota 1
Nota: Nota 2
Comentarios:
- Comentario 1 de Nota 2
Nota: Nota 3
Comentarios:
- Comentario 1 de Nota 3
- Comentario 2 de Nota 3
- 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