Bom dia Pessoal, Antes de postar minha duvida pesquisei muito e não achei nenhum resultado satisfatório... Vamos lá, no meu banco tenho a seguinte tabela: codigo | data_publicacao | arquivo O que eu quero é fazer um select e agrupar por mês, exemplo: codigo | data_publicacao | arquivo 1----------2012-03-01------001.pdf 2----------2012-03-02------002.pdf 3----------2012-03-03------003.pdf 4----------2012-04-04------004.pdf 5----------2012-05-05------005.pdf 6----------2012-05-06------006.pdf 7----------2012-05-07------007.pdf 8----------2012-05-08------008.pdf Ficando dessa forma: --------------001.pdf ----março---002.pdf --------------003.pdf -----Abril----004.pdf --------------005.pdf ------Maio----006.pdf --------------007.pdf --------------008.pdf A questão toda é que eu não estou sabendo a logica de colocar apenas uma vez o nome do mês, como está no loop sempre fica o mês ao lado do respectivo arquivo, exemplo: ----março----001.pdf ----março----002.pdf ----março----003.pdf ----Abril----004.pdf ----Maio----005.pdf ----Maio----006.pdf ----Maio----007.pdf ----Maio----008.pdf Segue meu código: if(empty($_GET['ano'])){ $SelectAtas = mysql_query("SELECT * FROM atas WHERE YEAR(data_publicacao) = YEAR(DATE(NOW())) ORDER BY data_publicacao DESC")or die("Erro na seleção".mysql_error()); while($RowAta = mysql_fetch_assoc($SelectAtas)){ $AtaNome = $RowAta['arquivo']; $AtaData = $RowAta['data_publicacao']; desconverte_data($AtaData); $AtaDataAgrupada = substr($AtaData, 3, 7); $AtaMes = substr($AtaData, 3, 2); echo"Ata da Reunião - $AtaData<br>"; } } else{ $AtaAno = $_GET['ano']; $SelectAtas = mysql_query("SELECT * FROM atas WHERE YEAR(data_publicacao) = '$AtaAno'")or die("Erro na seleção".mysql_error()); while($RowAta = mysql_fetch_array($SelectAtas)){ $AtaNome = $RowAta['arquivo']; echo"$AtaNome<br>"; }