nws_Rubrik - Sparar rubriken till nyheten
nws_Text - sparar texten till nyheten
nws_Date - Sparar datum och tid enl. Now tidsstämpel (YYYY-MM-DD HH:MM:SS)
och genom dena information vill jag generera en meny så man kan navigera sig genom de olika nyheterna och det vill jag ha på följande sätt:
Jan 2001
Feb 2001
Mars 2001
osv.. 2001
Jan 2002
Feb 2002
Mars 2002
osv..
och det gör jag på följande vis:
SELECT DISTINCT nws_Date FROM nyheter ORDER BY nws_Date ASC
men nu till själva problemet... tack vare att jag sparar med den tidsstämpeln så är varje ny post i databasen unik, men jag vill ju bara att den hämtar varje månad och år distinct så det inte blir att det blir flera dubletter av månaden i menyn, hur ska jag enklast lösa detta?
SELECT DISTINCT month(nws_Date) as m, year(nws_Date) as y FROM nyheter ORDER BY 2, 1
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
<%
SQL = "SELECT DISTINCT month(nws_Date) as m, year(nws_Date) as y FROM nyheter ORDER BY 2, 1"
Response.Write(sql)
set rs = objConn.execute(sql)
'Sätter variabeln på varannan rad grå
Dim Farg
Farg = "#E4E4E4"
While Not rs.EOF
dtmMonth = Month(rs("nws_Date"))
Select Case dtmMonth
Case "1"
strMonth = "Januari"
Case "2"
strMonth = "Februari"
Case "3"
strMonth = "Mars"
Case "4"
strMonth = "April"
Case "5"
strMonth = "Maj"
Case "6"
strMonth = "Juni"
Case "7"
strMonth = "Juli"
Case "8"
strMonth = "Augusti"
Case "9"
strMonth = "September"
Case "10"
strMonth = "Oktober"
Case "11"
strMonth = "November"
Case "12"
strMonth = "December"
End Select
%>
<tr>
<td bgcolor="<%=Farg%>" valign="top" width="4"></td>
<td bgcolor="<%=Farg%>" valign="top"><a href="index.asp?month=<%=Month(rs("nws_Date"))%>&year=<%=Year(rs("nws_Date"))%>" target="main_frame"><%=strMonth%> <%=Year(rs("nws_Date"))%></a></td>
<tr>
<%
'Sätter varannan rad till grå
If Farg = "#E4E4E4" Then
Farg = ""
Else
Farg = "#E4E4E4"
End If
rs.MoveNext
Wend
rs.close
%>
</table>
Fälten i recordsetet heter m och y och innehåller månad och år så du behöver inte använda month och year i ditt VB-script. Det finns en färdig funktion, monthname, för att ta fram namnet på en månad.
<%
SQL = "SELECT DISTINCT month(nws_Date) as m, year(nws_Date) as y FROM nyheter ORDER BY 2, 1"
Response.Write(sql)
set rs = objConn.execute(sql)
'Sätter variabeln på varannan rad grå
Dim Farg
Farg = "#E4E4E4"
While Not rs.EOF
strMonth = monthname(rs("m"))
%>
<tr>
<td bgcolor="<%=Farg%>" valign="top" width="4"></td>
<td bgcolor="<%=Farg%>" valign="top"><a href="index.asp?month=<%=rs("m"))%>&year=<%=rs("y")%>" target="main_frame"><%=strMonth%> <%=rs("y"))%></a></td>
<tr>
<%
'Sätter varannan rad till grå
If Farg = "#E4E4E4" Then
Farg = ""
Else
Farg = "#E4E4E4"
End If
rs.MoveNext
Wend
rs.close
%>
</table>