Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

felipebmfaria

Exibir registros separados pelo ano

Recommended Posts

Bom dia,

 

estou com dificuldades para exibir os eventos separados pelo ano. Exemplo:

 

2013 2012

evento 01 evento 01

evento 02 evento 02

evento 03 evento 03

 

Vejam que exibe o ano e abaixo vem os eventos pertinentes àquele ano.

 

Tentei com este code, mas parece não estar rodando os anos, tá exibindo somente os eventos do ano de 2013:

 

 

<?php
$query2 = "SELECT * FROM posts ORDER BY data_ordenacao DESC";
$result2 = @mysql_query($query2);
if ($ver2 = mysql_fetch_assoc($result2)) {
echo '<b>'.$ano = substr($ver2['data_publicacao'], 0, 4).'</b><br>';
}

while ($registro = mysql_fetch_assoc($result2)) {
$id = $registro['id'];
$nome = $registro['nome'];
if($ano != $registro['data_publicacao']){
echo "<br />";
}
echo $nome.'<br>';
}
?>

 

Se alguém tiver uma idéia...

 

Grato.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o GROUP BY vai agrupar por datas iguais e não por ano.

 

se não me engano é assim:

 

 

SELECT * FROM TABELA GROUP BY YEAR('2012-02-23')

Eu coloquei uma data como string só para exemplificar, mas se você colocar o nome do seu campo no lugar acho que rola.

 

 

YEAR(data)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não deu certo.

 

O meu banco não tem o campo 'ano', tem o campo data no formato date, daí eu pego o ano pelos primeiros quatro caracteres.

 

pensei nisso aqui, mas o ano é impresso várias vezes e nao fica alinhando em coluna, como era o pretendido.

 

$query2 = "SELECT * FROM posts ORDER BY data_ordenacao DESC, hora_ordenacao DESC";
$result2 = @mysql_query($query2);
     while ($ver2 = mysql_fetch_assoc($result2)) {
         echo '<b>'.$ano = substr($ver2['data_publicacao'], 0, 4).'</b><br>';
         echo $ver2['nome'].'<br>';
     }

 

Alguém tem uma idéia?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza, Vinicius

 

isso mesmo que está retornando: o ano dos eventos em sequência, mas tá repetindo e não to conseguindo separar por ano com o order by. Você tem algum exemplo para ver se consigo adaptar?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imprime somente o ultimo registro, estranho!!!

 

 

$query = "SELECT * FROM posts GROUP BY YEAR('data_publicacao')";
$result = @mysql_query($query);
    while ($ver = mysql_fetch_assoc($result)) {
       echo substr($ver['data_publicacao'], 0, 4);
       echo $ver['nome'];
    }
 
Não deveria imprimir todos os registros com os seus respectivos anos na frente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa, nao entendi?

 

A partir do codigo nao era para imprimir todos os registros com os seus respectivos anos na frente? Estou errado?

 

Exibiu somente o ultimo registro.

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem as aspas está exibindo assim:

 

2012 - Titulo 01

2013 - Titulo 0001

 

sendo que há mais registros para 2012 e 2013 e nao estao sendo exibidos.

 

Eu precisava que fosse assim:

 

 

2013 2012
evento 01 evento 01
evento 02 evento 02
evento 03 evento 03

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porque desta forma que voce disse exibiria os anos varias vezes e eu precisava que imprimisse o ano e na sequencia os eventos daquele ano e depois imprime o outro ano e os seus respectivos eventos e assim vai...

Compartilhar este post


Link para o post
Compartilhar em outros sites

aaaaaaaaaaaaaaaaaaa

isso ai é no PHP.

você criar um array e passar o ano como indice desse array e dentro desse array varios outros arrays que serão os seus itens.

Compartilhar este post


Link para o post
Compartilhar em outros sites


$array = array();

foreach($dadosDoMeuSelect as $dados){

 

$data = explode('-', $dados['data']);

$array[$dados[$data[0]]] = array('id'=> $dados['id'], 'outroDado' => $dados['outroDado']);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.