Ir para conteúdo

POWERED BY:

Arquivado

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

branco

Consulta sem repetir

Recommended Posts

Eu estou começando no php, e fiz um sistema de blog, tá tudo certinho, menos a geração dos links pra textos antigos... Para gerar os links, eu estou guardando no mysql o mês, o numero de dias do mês e o ano...

Só que o problema acontece quando vou gerar os links, ele repete o mês o número de posts, sendo que deveria gerar um link por cada mês encontrado...

 

o codigo é esse:

<?include "admin/conf.php";$sql = "SELECT DISTINCT * FROM blog WHERE mes ORDER BY post_id DESC"; $resultado = mysql_query($sql)or die ("Não foi possível realizar a consulta ao banco de dados");while ($linha=mysql_fetch_array($resultado)) {$mes = $linha["mes"];$dias = $linha["numdias"];$ano = $linha["ano"];echo "<center><a href='antigos.php?mes=$mes'>De 1-$mes-$ano até $dias-$mes-$ano</a></center>";}?>
Eu tentei colocar no lugar do * a coluna, ou seja, mes, mas daí ele não mostra nem o numero de dias nem o ano...

Se alguém souber como resolver esse problema...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi direito, por que você colocou coisa demais num lugar e pouca em outra.

 

Ae vai um exemplo de como eu faria, para você ter uma idéia.

 

<?include "admin/conf.php";$sql = "SELECT * FROM blog ORDER BY post_id DESC";$resultado = mysql_query($sql)or die ("Não foi possível realizar a consulta ao banco de dados");while ($linha=mysql_fetch_array($resultado)) {$mes = $linha["mes"];$dias = $linha["numdias"];$ano = $linha["ano"];echo "<center><a href='antigos.php?mes=$mes&ano=$ano'>De 1-$mes-$ano até $dias-$mes-$ano</a></center>";}?>

 

para recuperar os artigos do mes:

$sql = "SELECT * FROM blog WHERE mes='$mes' and ano = '$ano' ORDER BY post_id DESC";

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é que tá gerando links sem parar... ao invés de gerar apenas 1 link por mês... cada arquivo que ele encontra ele gera um link... por isso o negócio cresceu demais lá encima, tentativas fustradas de solução...

 

Acabei de conseguir o que queria... usei um simples if pra comparar, visto que as datas vão obviamente crescer ordenadamente...

 

<?include "admin/conf.php";$sql = "SELECT * FROM blog ORDER BY post_id DESC"; $resultado = mysql_query($sql)or die ("Não foi possível realizar a consulta ao banco de dados");$mescomp=0;while ($linha=mysql_fetch_array($resultado)) {$mes = $linha["mes"];$dias = $linha["numdias"];$ano = $linha["ano"];[COLOR=red]if($mes!=$mescomp){  echo "<center><a href='lerantigos.php?mes=$mes'>De 1-$mes-$ano até $dias-$mes-$ano</a></center>";  $mescomp=$mes;}else  $mescomp=$mes;[/COLOR]}?>

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.