Ir para conteúdo

POWERED BY:

Arquivado

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

betobto

[Resolvido] Separar noticias por Ano e Mes

Recommended Posts

Olá boa tarde, como eu faço para separar as noticias cadastradas por mes e ano?

 

ficando nessa ordem

 

2010

- Novembro

- Dezembro

 

2011

- Janeiro

- Fev...

 

e assim por diante?

 

estou cadastrando a data assim no banco de dados " 19/11/2010 "

 

Espero me possam ajudar?

 

Pois nao sei por onde começar

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.... depois de algum tempo voltei...

 

onde estavamos consegui esse resultado

 

 

 

 

Arquivos

 

2010

Outubro (11)

Novembro (20)

Dezembro (6)

 

 

 

Gostaria que ficasse como a imagem abaixo:

Imagem Postada

 

 

segue o codigo para analize e me ajudarem

 

<%
Function escrevemes(mes)
    If mes = 01 Then
        escrevemes = "Janeiro"
        Elseif mes = 02 Then escrevemes = "Fevereiro"
        Elseif mes = 03 Then escrevemes = "Março"
        Elseif mes = 04 Then escrevemes = "Abril"
        Elseif mes = 05 Then escrevemes = "Maio"
        Elseif mes = 06 Then escrevemes = "Junho"
        Elseif mes = 07 Then escrevemes = "Julho"
        Elseif mes = 08 Then escrevemes = "Agosto"
        Elseif mes = 09 Then escrevemes = "Setembro"
        Elseif mes = 10 Then escrevemes = "Outubro"
        Elseif mes = 11 Then escrevemes = "Novembro"
        Elseif mes = 12 Then escrevemes = "Dezembro"
    End If
End Function

menor = "05/04/2005" : maior = day(date) &"/"& month(date) &"/"& year(date)
pegamenor = Year(menor) : pegamaior = Year(maior)
anos = pegamaior - pegamenor

Response.Write "Arquivos<br /><br />"

For anodata = 1 to anos
    anocriado = pegamenor + anodata
    For mesdata = 1 to 12
        mescriado = mesdata
        Set wcon = CreateObject("ADODB.Connection")
        wcon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath("base.mdb")   
        Set wrs = wcon.Execute("SELECT Count(cod) FROM tblNoticias WHERE MONTH(data) = " & mescriado & " and YEAR(data) = " & anocriado & "")
        If wrs(0) >= 1 Then
             If anocriado = anocomparado Then
                     Response.Write escrevemes(mescriado) & " (" & wrs(0)  & ")<br />"
              Else
                     Response.Write anocriado & "<br />" & escrevemes(mescriado) & " (" & wrs(0)  & ")<br />"
                     anocomparado = anocriado
              End If
        End If
        wcon.close
        Set wcon = Nothing
        Set wrs = Nothing
    Next
Next
%>

estou dando um ORDER BY data ASC e esta dando erro

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta apenas não selecionar o total (Count(cod))e sim os registros

 

E lista-los

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer separar por ano mas nao consigo listar as materias referente a cada mes...

 

aparece este erro:

 

 

ADODB.Recordset erro '800a0cc1'

 

O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

 

/sites/todosports/noticiasPageArquivos.asp, line 60

 

 

linha 60: <div class="noticiasArquivos-box-dia-noticias"><a href="index.asp?pagina=noticiasDesc&cod=<%=wrs("cod")%>">•  <%=wrs("data")%>  -  <%=wrs("titulo")%></a></div>

 

 

segue todo o codigo

 

 

<!--# include file="abrir.asp" -->
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link rel="stylesheet" type="text/css" href="Styles.css"/>
<link rel="stylesheet" type="text/css" href="css/global.css"/>

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<%
'option explicit

Function escrevemes(mes)
    If mes = 01 Then
        escrevemes = "Janeiro"
        Elseif mes = 02 Then escrevemes = "Fevereiro"
        Elseif mes = 03 Then escrevemes = "Março"
        Elseif mes = 04 Then escrevemes = "Abril"
        Elseif mes = 05 Then escrevemes = "Maio"
        Elseif mes = 06 Then escrevemes = "Junho"
        Elseif mes = 07 Then escrevemes = "Julho"
        Elseif mes = 08 Then escrevemes = "Agosto"
        Elseif mes = 09 Then escrevemes = "Setembro"
        Elseif mes = 10 Then escrevemes = "Outubro"
        Elseif mes = 11 Then escrevemes = "Novembro"
        Elseif mes = 12 Then escrevemes = "Dezembro"
    End If
End Function

menor = "05/04/2005" : maior = day(date) &"/"& month(date) &"/"& year(date)
pegamenor = Year(menor) : pegamaior = Year(maior)
anos = pegamaior - pegamenor

Response.Write "<img src=imagens/titulo_arquivo.png width=800 height=38 /><br /><br />"

For anodata = 1 to anos
    anocriado = pegamenor + anodata
    For mesdata = 1 to 12
        mescriado = mesdata
        Set wcon = CreateObject("ADODB.Connection")
        wcon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath("base.mdb")   
        Set wrs = wcon.Execute("SELECT Count(cod) FROM tblNoticias WHERE MONTH(data) = " & mescriado & " and YEAR(data) = " & anocriado & "")
        If wrs(0) >= 1 Then
             If anocriado = anocomparado Then %>
                     <div id="noticiasPage"><div class="noticiasArquivos-box">
					 	<div class="noticiasArquivos-box-mes"><%Response.Write escrevemes(mescriado) & " <br />" %></div>
                     </div></div>
			  <% Else %>
              
              
              
		<div id="noticiasPage">
        	<div class="noticiasArquivos-box">
            	<div class="noticiasArquivos-box-ano"><%response.Write anocriado%></div>
                <div class="noticiasArquivos-box-mes"><%
                     Response.Write  escrevemes(mescriado)
                     anocomparado = anocriado%>
                </div>
                <% While Not wrs.Eof %>
                <div class="noticiasArquivos-box-dia-noticias"><a href="index.asp?pagina=noticiasDesc&cod=<%=wrs("cod")%>">•  <%=wrs("data")%>  -  <%=wrs("titulo")%></a></div>
                <% wrs.MoveNext : wend %>
            </div>
        </div>
        
     <%
              End If
        End If
        wcon.close
        Set wcon = Nothing
        Set wrs = Nothing
    Next
Next
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se esta tentando buscar um campo que não existe no banco de dados. Checa se você está buscando certo, eja se todos os campso estao digitados corretamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é exatamente esta linha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na string SQL, para ver o k esta sendo passado

response.write(SQL)

response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

já verifiquei... está tudo certo como no banco de dados...

 

nao consigo colocar por ordem decrescente... e nao consigo colocar as materias relacionadas ao mes como na imagem:

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Repito a pergunta

 

Qual a linha do erro no código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

linha 60: <div class="noticiasArquivos-box-dia-noticias"><a href="index.asp?pagina=noticiasDesc&cod=<%=wrs("cod")%>">•  <%=wrs("data")%>  -  <%=wrs("titulo")%></a></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O select por ano você consegue realizar correto ?

Dentro do while desse select, você realiza o select por mês, e dentro do while do mes você realiza o select por dia.

 

To meio enrolado aqui, se precisar posto um exemplo mais tarde.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu código está ruim e sujo demais

 

Vou refazer um basicao aqui mas não tenho como testar

 

Testaremos no seu servidor

 

Já já posto aqui se terminar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente mudei a sua função usando select case que é muito melhor do que aquele mundo de ifs

 

No mais melhores os loops e eliminei uma serie de variáveis inúteis

 

Vamos testar o código para ver se exibe o que procura

 

<!--# include file="abrir.asp" -->
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link rel="stylesheet" type="text/css" href="Styles.css"/>
<link rel="stylesheet" type="text/css" href="css/global.css"/>

<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
<%
'option explicit

Function escrevemes(mes)
SELECT CASE CINT(mes)
CASE 1: escrevemes = "Janeiro"
CASE 2: escrevemes = "Fevereiro"
CASE 3: escrevemes = "Março"
CASE 4: escrevemes = "Abril"
CASE 5: escrevemes = "Maio"
CASE 6: escrevemes = "Junho"
CASE 7: escrevemes = "Julho"
CASE 8: escrevemes = "Agosto"
CASE 9: escrevemes = "Setembro"
CASE 10: escrevemes = "Outubro"
CASE 11: escrevemes = "Novembro"
CASE 12: escrevemes = "Dezembro"
END SELECT
End Function

menor = "05/04/2005"
maior = day(date) &"/"& month(date) &"/"& year(date)

Response.Write "<img src=imagens/titulo_arquivo.png width=800 height=38 /><br /><br />"

For ANO = Year(menor) to Year(maior)

    For MES = 1 to 12
        Set wcon = CreateObject("ADODB.Connection")
        wcon.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" & Server.MapPath("base.mdb")   
        Set wrs = wcon.Execute("SELECT Cod FROM tblNoticias WHERE MONTH(data) = " & MES & " and YEAR(data) = " & ANO & " ORDER BY Cod DESC")
        MostrarMes = True
        WHILE wrs.EOF
           IF MostrarMes THEN
              MostrarMes = False
              Response.Write (escrevemes(MES) & " - " & ANO & " <br />")
           END IF
           
           Response.Write ("<a href="index.asp?pagina=noticiasDesc&cod=" & wrs("cod") & ">• " & wrs("data") & "  -  " & wrs("titulo") & "</a>  & " <br />")

        wrs.movenext
        WEND

        wcon.close
        Set wcon = Nothing
        Set wrs = Nothing
    Next
Next
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

está dando esse erro

 

 

Janeiro - 2005

erro '80020009'

/sites/todosports/noticiasPageArquivos.asp, line 48

 

 

linha 48: Response.Write ("<a href=index.asp?pagina=noticiasDesc&cod=" & wrs("cod") & ">• " & wrs("data") & " - " & wrs("titulo") & "</a>")

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro esta no select

 

é que estamos selecionando apenas o cod

 

Altere

 

SELECT Cod FROM ...

 

por

 

SELECT cod, data, titulo FROM ...

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.