Henze 0 Denunciar post Postado Janeiro 9, 2012 Boa noite Galera, Não sei se esta é a melhor forma de fazer o que quero, mas foi a primeira forma que me veio à cabeça: Estou tendo dificuldades em relacionar apenas o ano de inclusão das linhas da minha tabela de notícias no SQL. Estou criando uma página onde pretendo dar a opção dos usuários listarem as notícias por ano, mas pra isso preciso capturar no BD os anos que tenho alguma notícia. Abaixo o exemplo de como estou fazendo, mas que me responde com erro no PHP: $not = mysql_query("SELECT DISTINCT SUBSTR(data_noticias,1,4) FROM noticias"); while($linha = mysql_fetch_array($not)){ $ano = $linha['data_noticias']; echo "$ano"; } A consulta quando executo no SQL me responde exatamente o que preciso, porém no PHP não consigo exibir o resultado... Estou desde ontem preso nisso e não consigo ver onde está o erro... alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 9, 2012 não lembro agora como é o comportamento do mysql nesse caso, mesmo usando uma única tabela e um único campo, mas sempre que utilizo funções prefiro especificar um alias. no seu caso seria isso: SUBSTR(data_noticias,1,4) AS data_noticias veja se resolve.. obs: isso pode não ser a resolução do problema e tampouco quer dizer que seja a única melhor técnica do universo. Apenas tente. Compartilhar este post Link para o post Compartilhar em outros sites
Henze 0 Denunciar post Postado Janeiro 9, 2012 Boa noite Hinom, Primeiramente obrigado pela ajuda. No SQL a consulta funcionou perfeitamente conforme a que eu estava usando, mas na hora de exibir com o PHP, dá erro da mesma forma... O erro no PHP: Notice: Undefined index: data_noticias Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Janeiro 9, 2012 mesmo com alias ? "SELECT DISTINCT SUBSTR(data_noticias,1,4) AS data_noticias FROM noticias" de qualquer modo, faça assim $not = mysql_query("SELECT DISTINCT YEAR(data_noticias) AS data_noticias FROM noticias"); while($linha = mysql_fetch_array($not)){ print_r($linha); exit; // apenas para debugar $ano = $linha['data_noticias']; echo $ano; } Compartilhar este post Link para o post Compartilhar em outros sites
Henze 0 Denunciar post Postado Janeiro 9, 2012 Opa Hinom, Correção, na verdade tinha resolvido da forma que você colocou o SQL. Apenas precisava tirar a linha de Debug... Ficou assim e está funcionando perfeitamente: $not = mysql_query("SELECT DISTINCT YEAR(data_noticias) AS data_noticias FROM noticias ORDER BY data_noticias DESC"); while($linha = mysql_fetch_array($not)) { $ano = $linha['data_noticias']; echo "<a href=\"noticias-ano.php?ano=$ano\"><p>$ano</p></a>"; } Valeu mesmo pela ajuda e como sou mais da área de redes, qualquer coisa que eu puder ajudar, estamos ae... Compartilhar este post Link para o post Compartilhar em outros sites