Então vamos lá. Supondo que você tenha 2 campos na sua tabela, um chamado nome, que será o nome das pessoas, e outro chamado dados, que conterá os dados quaisquer. Suponha também que a tabela se chame atividades: Primeiro você fará um select usando GROUP BY. Por que? Porque existem vários registros com o mesmo nome, e você quer pegar cada nome apenas uma vez. Utilizaremos também um ORDER BY / ASC, pra organizarmos tudo em ordem alfabética. $consulta = mysql_query("SELECT `nome` FROM `atividades` GROUP BY `nome` ORDER BY `nome` ASC");
while($resultado = mysql_fetch_array($consulta0)){
// SEU SELECT PARA PEGAR OS DADOS DAS PESSOAS
}
Ali no comentário // SEU SELECT PARA PEGAR OS DADOS DAS PESSOAS você fará seu select pegando os dados de cada usuário:
$Nome = $resultado["nome"]; // Aqui eu pego o nome da pessoa
$outra_consulta = mysql_query("SELECT * FROM `atividades` WHERE `nome` = '$Nome'");
if ($outro_resultado = mysql_fetch_array($outra_consulta){ // Se existir algum resultado
do { // Faça isso
// Pega os valores, monta a tabela e imprime
}
while($outro_resultado = mysql_fetch_array($outra_consulta)); // Enquanto existir dados no db
} Um problema: Se você tiver um homônimo, por exemplo, duas pessoas com o nome José da Silva, este script considerará tudo como uma pessoa só. Para corrigir você deverá criar uma outra tabela com os nomes dos usuários e um id, que será único, e nesta tabela do relatório, jogar apenas o ID dessa pessoa. Assim, como o ID será diferente, ele tratará como pessoas diferentes também.