14 messaggi dal 11 ottobre 2008
www.loreggia.com
Volendo creare dinamicamente un calendario delle notizie pubblicate nel sito, mi sono scontrato nel ridurre il numero di mesi da mostrare nella sidebar (io vorrei mostrarne solo 5).
ECCO IL CODICE DELLA PAGINA:

<h4 class="title-03">Sfoglia notizie tramite mese</h4>

<div class="in">
<ul id="subnav">
<% ' APRO CONNESSIONE AL DATABASE ' %>
<!--#INCLUDE file="admin/includes/gestioneDatabase.asp"-->
<%
anno(0) = "nessuno"
anno(1) = "gennaio"
anno(2) = "febbraio"
anno(3) = "marzo"
anno(4) = "aprile"
anno(5) = "maggio"
anno(6) = "giugno"
anno(7) = "luglio"
anno(8) = "agosto"
anno(9) = "settembre"
anno(10) = "ottobre"
anno(11) = "novembre"
anno(12) = "dicembre"

' STRINGA SQL '
SQL = "SELECT DISTINCT Year(tblNotizie!fldDataInserimentoNotizia) AS Anno, Month(tblNotizie!fldDataInserimentoNotizia) AS Mese FROM tblNotizie ORDER BY Year(tblNotizie!fldDataInserimentoNotizia) DESC , Month(tblNotizie!fldDataInserimentoNotizia) DESC"

' PONGO CONNESSIONEDB AD ESECUZIONE DI SQL '
Set connessioneDB = Conn.Execute (SQL)

' INIZIO LA RIPETIZIONE '
While Not connessioneDB.EOF
%>
<li <% if Year(Date) = connessioneDB("Anno") then %>class="active"<% end if %>><a href="meseNotizie.asp?M=<%=connessioneDB("Mese")%>&A=<%=connessioneDB("Anno")%>"><%=anno(connessioneDB("Mese"))%> - <%=connessioneDB("Anno")%></a></li>
<%
' EFFETTUO RIPETIZIONE '
connessioneDB.MoveNext

' TERMINO RIPETIZIONE '
Wend

' CHIUDO CONNESSIONE AL DB '
Conn.Close
%>
<li class="active"><a href="archivioNotizie.asp">Archivio notizie mesi precedenti</a></li>

(per l'esempio dell'elenco dei mesi potete guardare qui - a destra della pagina)
QUANDO INSERISCO NELLA STRINGA SQL 'TOP 5' MI RIPETE UN MESE MOLTE VOLTE SENZA DARE L'EFFETTO SPERATO...
SE QUALCUNO (DI CERTO VOI NE SAPETE MOLTO PIU' DI ME) RIUSCISSE A TROVARE UNA SOLUZIONE VE NE SAREI GRATO....

GRAZIE CMQ PER LA DISPONIBILITA'
Modificato da marcor2 il 06 gennaio 2010 12.33 -

www.loreggia.com
IL PORTALE WEB DEDICATO A LOREGGIA
27 messaggi dal 27 maggio 2007
ciao marcor2

Ci sarebbero vari modi ma non sapendo che database usi e se non vuoi modificare la struttura del database una soluzione semplice e inserire un if then all'interno del ciclo.

<h4 class="title-03">Sfoglia notizie tramite mese</h4>

<div class="in">
<ul id="subnav">
<% ' APRO CONNESSIONE AL DATABASE ' %>
<!--#INCLUDE file="admin/includes/gestioneDatabase.asp"-->
<%
numero = 1
anno(0) = "nessuno"
anno(1) = "gennaio"
anno(2) = "febbraio"
anno(3) = "marzo"
anno(4) = "aprile"
anno(5) = "maggio"
anno(6) = "giugno"
anno(7) = "luglio"
anno(8) = "agosto"
anno(9) = "settembre"
anno(10) = "ottobre"
anno(11) = "novembre"
anno(12) = "dicembre"

' STRINGA SQL '
SQL = "SELECT DISTINCT Year(tblNotizie!fldDataInserimentoNotizia) AS Anno, Month(tblNotizie!fldDataInserimentoNotizia) AS Mese FROM tblNotizie ORDER BY Year(tblNotizie!fldDataInserimentoNotizia) DESC , Month(tblNotizie!fldDataInserimentoNotizia) DESC"

' PONGO CONNESSIONEDB AD ESECUZIONE DI SQL '
Set connessioneDB = Conn.Execute (SQL)

' INIZIO LA RIPETIZIONE '
While Not connessioneDB.EOF
if numero <= 5 then
%>
<li <% if Year(Date) = connessioneDB("Anno") then %>class="active"<% end if %>><a href="meseNotizie.asp?M=<%=connessioneDB("Mese")%>&A=<%=connessioneDB("Anno")%>"><%=anno(connessioneDB("Mese"))%> - <%=connessioneDB("Anno")%></a></li>
<%
end if
numero = numero + 1

' EFFETTUO RIPETIZIONE '
connessioneDB.MoveNext

' TERMINO RIPETIZIONE '
Wend

' CHIUDO CONNESSIONE AL DB '
Conn.Close
%>
<li class="active"><a href="archivioNotizie.asp">Archivio notizie mesi precedenti</a></li>

cosi scrive i primi 5 poi il resto non li scrive, le righe da inserire le o messe in grassetto spero che ti possa essere di aiuto.
14 messaggi dal 11 ottobre 2008
www.loreggia.com
Giusto! Come ho fatto a non pensarci prima...
GRAZIE MILLE...sono in debito...
anche se non so quando mi sdebiterò vista la mia poca esperienza con l'asp!

Grazie ancora e al prossimo problema (di sicuro ce ne saranno ancora!  ), ciao

www.loreggia.com
IL PORTALE WEB DEDICATO A LOREGGIA

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.