Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal!
Tenho uma tabela chamada 'solicitacao' com um campo tipo date chamado 'dataencerram'. Preciso gerar um relatório anual. Gostaria de pegar o ano e colocá-lo em um listbox, onde seleciono o ano e peço pra gerar o relatório.'
Por exemplo:
Tenho os seguinte campos:
2009-12-21
2009-08-01
2010-07-05
2010-05-06
2010-12-07
No listbox mostrasse:
2009
2010
Se incluísse um novo registro (2011-05-10), automaticamente o ano de 2011 fosse inserido na listbox.
É possível fazer isso?
Obrigado
Muito obrigado pela ajuda Quelipe!
Pesquisando na internet, consegui montar esse laço:
<select name='ano'>
<?php
$ano = @mysql_query("SELECT YEAR(dataencerram) AS data FROM solicitacao");
while ($r_ano = @mysql_fetch_array($ano))
{ echo "<option value='$r_ano[data]'>$r_ano[data]</option>";}
?>
</select>
Ele está pegando os anos corretamente, porém os repete na mesma quantidade de registros, ou seja, se existem dez registros com a data 2010 ele mostra 2010 dez vezes no listbox.
Como faço para exibir apenas uma vez?
Consegui. Foi só acrescentar o DISTINCT no comando, conforme código abaixo:
<select name='ano'>
<?php
$ano = @mysql_query("SELECT DISTINCT YEAR(dataencerram) AS data FROM solicitacao");
while ($r_ano = @mysql_fetch_array($ano))
{ echo "<option value='$r_ano[data]'>$r_ano[data]</option>";}
?>
</select>
Obrigado pela ajuda Quelipe.
Abraços
Seu SQL:
SELECT YEAR(data) AS data FROM tabela
Agora é só montar o laço para a lista que pretente mostrar.
At+