Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) agrupar os registros do mysql


natbe

Pergunta

Pessoal,

Gostaria de uma ajuda...

Estou fazendo um sistema em php que contém um banco de dados MySQL. Nesse banco tem uma tabela chamada noticias que tem:

codigo

data

informacao

Fiz um select para selecionar somente os registros encontrados por código.

SELECT *

FROM noticias

WHERE codigo = $cod

ORDER BY data ASC

Exemplo: se o codigo = 1 ele acha "x" registros.

Só nesses "x" registros, alguns tem a mesma data.

Preciso fazer com que ocorra a impressão de um título só (a Data) e coloque todos os registros (campo informacao) que contêm a mesma data abaixo desse título.

E fazer o mesmo com as outras datas que o sistema encontra, que podem ser variadas.

Alguma ajuda de como implementar?

Valeu!

Editado por natbe
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Olá Renato,

Grata, deu certo! Só tive que inverter o order by pelo group by. Ficou assim:

SELECT DISTINCT noticias.*

FROM noticias WHERE codigo = $cod

GROUP BY data ORDER BY data ASC

Porém, na hora de imprimir, ele só imprime o primeiro resultado do agrupamento!!

Alguém sabe como fazer ele imprimir todos os registros agrupados?

Valeu pela ajuda! Só falta isso para terminar o aplicativo!

Link para o comentário
Compartilhar em outros sites

  • 0

Tirei o Distinct mas, ele continua imprimindo somente o primeiro registro.

Vou por o código aqui:

<table width="620" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<td colspan="3" height="182" background="cabecalho.jpg"><p><br />

<br />

<font face="Verdana, Arial" size="6" color="#295300"> <?php echo $row_titulo['ano']; ?></font><br />

<font face=Verdana, Arial" size="5" color="#295300"><?php echo $row_titulo['data1]; ?></font></p> </td>

</tr>

<?php do { ?>

<tr>

<td height="46" colspan="3" valign="middle" background="faixa_verde_data.jpg"><p><font face="Verdana, Arial" size="2" color="#ffffff"><strong><?php echo $row_Recordset1['data']; ?></strong> </font></p> </td>

</tr>

<tr>

<?php if ($row_Recordset1['imagem'] !="){ ?> <td width="40" background="faixa_lateral.jpg"> </td>

<td valign="top"><p><font face="Verdana, Arial" size="3" color="#4E4E4E"><strong><?php echo $row_Recordset1['curso]; ?></strong></font><br />

<font face="Verdana, Arial" size="2" color="#4E4E4E"><strong><?php echo $row_Recordset1['palestrante']; ?> <br />

Valor: </strong></font><font face=Verdana, Arial" size="2" color="#4E4E4E"><?php echo $row_Recordset1['valor]; ?> <?php echo $row_Recordset1['informacao']; ?></font></p> </td>

<td width=132" valign="middle"><div align="right"><img src="<?php echo $row_Recordset1['imagem]; ?>" width="127" height="82" /></div></td>

<?php } else {

?>

<td background="faixa_lateral.jpg"> </td>

<td colspan="2" valign="top"><p><font face="Verdana, Arial" size="3" color="#4E4E4E"><strong><?php echo $row_Recordset1['curso']; ?></strong></font><br />

<font face=Verdana, Arial" size="2" color="#4E4E4E"><strong><?php echo $row_Recordset1['palestrante]; ?> <br />

Valor: </strong></font><font face="Verdana, Arial" size="2" color="#4E4E4E"><?php echo $row_Recordset1['valor']; ?> <?php echo $row_Recordset1['informacao']; ?></font></p></td>

<?php } ?>

</tr>

<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>

<tr>

<td background="faixa_lateral.jpg"> </td>

<td colspan="2" valign="top"> </td>

</tr>

<tr>

<td colspan="3"><img src="rodape.jpg" width="620" height="315" /></td>

</tr>

</table>

Alguma luz?

Editado por natbe
Link para o comentário
Compartilhar em outros sites

  • 0

natbe, use o select q você estava usando no primero post.

o q você deve fazer é criar uma variavel pra guardar o valor da data anterior. assim q a data mudar, você escreve a data.

assim, crie essa variavel com valor em branco ("") antes de comecar o while.

na primeira linha do while, compare essa data com a data do registro atual do banco de dados. se for diferente, você escreve a data. e depois disso, você grava, nessa variavel, o valor da data q vem do banco.

assim, a data so vai ser escrita quando ela mudar.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...