Meng Medlem sedan feb. 2003 549 inlägg Frågan 16 jan. 2004 14:10 #1 Hej nu har jag problem igen, mycket beroende på att jag faktiskt
inte kan något om asp, men jag vill ju lära mig så det är därför
jag fortsätter att försöka. Jag har en säkert enkel fråga för
er "guru:s" men jag vet inte var jag ska leta ens så därför är det
svårt för mig.
Jag har en nyhetsmodul som jag har moddat lite efter mina
behov. Den skriver Skribent, Rubrik, Nyhet och datum till
databasen. Just nu fungerar den så att den visar alla poster med
det nyaste först såklart. Jag vill dela upp detta i två sidor. En
med "alla" minus de som är en månad gammla och en med bara
de som är en månad gammla. Alltså den visar de nyaste med en
månad tillbaka.
Jag har provat att söka här i forumet och hittat en massa svar
men jag vet inte hur jag applicerar dessa till min nyhetsmodul.
Min kod är denna:
<%
'##############ÄNDRA DETTA#############################
NyhetPerSida = 5 ' Antal nyhetsrubriker per sida
URL = "index2.asp" ' Sidan du inkluderar news2.asp i
db = Server.MapPath("db/news.mdb") ' Databasens sökväg
Width = "200" ' Bredd på bilden
'#####################################################'
%>
<!--
##########################################
Gruvsjo Nyheter v3
Åsa Gruvsjö ©
[url]www.gruvsjo.com[/url]
[email]Asa@gruvsjo.com[/email]
Fri att använda om ni låter copyrightkoden stå kvar!
##########################################
-->
<table cellpadding="1" cellspacing="0" width="100%" border="0">
<%Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db
If Request.QueryString("ID") = "" Then
Set RecSet = Server.CreateObject("ADODB.Recordset")
Sidan = Request.QueryString("sida")
If Sidan = "" then
sida = 1
Else
sida = Sidan
End If
With RecSet
.CursorLocation = 3
.CacheSize = NyhetPerSida
End With
SQL = "SELECT * FROM news Order By id desc"
RecSet.Open SQL, Conn
If RecSet.EOF Then%>
<tr>
<td>Ingen nyheder lagt in!</td>
</tr>
<%Else
With RecSet
.MoveFirst
.PageSize = NyhetPerSida
.AbsolutePage = sida
End With
Sidor = RecSet.PageCount
x = 0
Do While Not RecSet.EOF And x < RecSet.PageSize%>
<tr>
<td width="20" align="left"><img src="bilder/news.gif" border="0" valign="middle"></td><td align="left"><font size="2"><b><%=RecSet("rubrik")%></b></font> | <%=FormatDateTime(RecSet("datum"),2)%> (<%=FormatDateTime(RecSet("datum"),4)%>)</td>
</tr>
<tr>
<td height="5" align="left" colspan="2"></td>
</tr>
<tr>
<td colspan="2" style="filter:alpha(opacity=50); " onMouseover="this.style.filter='alpha(opacity=100)';" onMouseout="this.style.filter='alpha(opacity=50)';"><b><a href="<%=URL%>?ID=<%=RecSet("ID")%>"><img src="../images/ico_down.gif" border="0" height="15" hspace=3 vspace=0 align=absmiddle>Læs mer</a></b></td>
</tr>
<tr height="20">
<td colspan="2"> </td>
</tr>
<%x=x+1
RecSet.MoveNext
Loop
RecSet.Close
If Sidor > 1 Then%>
<tr>
<td valign="top" colspan="2">
<%For Sid = 1 To Sidor
If (Int(Sid)) = (Int(sida)) Then%><b><%=Sid%></b><%Else%> <a href="<%=URL%>?sida=<%=Sid%>"><%=Sid%></a> <%End If
Next%>
</td>
</tr>
<%End If
End If
End If
If Request.QueryString("ID") <> "" Then
Set RS=Conn.Execute("Select * From news Where id=" & Request.QueryString("ID"))%>
<tr>
<%If RS("bild") <> "" Then%>
<td rowspan="3" valign="top"><img src="<%=RS("bild")%>" border="1" width="<%=Width%>"></td>
<td rowspan="3" width="5"> </td>
</tr>
<tr>
<%End If%>
<td width="20" align="left"><img src="bilder/news.gif" width="14" border="0" valign="middle"></td><td width="97%" align="left"><font size="2"><b><%=RS("rubrik")%></b></font> | <%=FormatDateTime(RS("datum"),2)%> (<%=FormatDateTime(RS("datum"),4)%>)</td>
</tr>
<tr>
<td colspan="2"><br><%=Replace(RS("nyhet"),vbCrLf,"<br>")%><br><br>// <%=RS("namn")%></td>
</tr>
<tr>
<td colspan="2" style="filter:alpha(opacity=50); " onMouseover="this.style.filter='alpha(opacity=100)';" onMouseout="this.style.filter='alpha(opacity=50)';"><br><a href="<%=URL%>"><img src="../images/ico_tilbage.gif" border="0" hspace=0 vspace=0 align=absmiddle alt="« Gå tilbage">Tilbage</a></td>
</tr>
<%End If%>
</table>
Hejsan!
För att få dom 30 sista dagarna skriver du SQL-satsen på följande vis.
SQL = "SELECT * FROM news where fldDate > #" & DateAdd("m",-1,Date()) & "# Order By id desc"
Allt som hänt denna månaden. Men det bästa sättet är nog om du visar dom 30 eller 31 sista dagarna. Det gör du följande vis:
SQL = "SELECT * FROM news where fldDate >= #" & DateAdd("d",-31,Date()) & "# Order By id desc"
Hoppas att detta fungerar :-)
Mvh
Granqvist
Meng Medlem sedan feb. 2003 549 inlägg jo det fungerade utmärkt, nu förstår jag bara inte hur jag visar Allting minus den senaste månaden?
J.N. Medlem sedan apr. 2003 1 660 inlägg HEJ!
Det är väl endast att vända på frågan?
Hämta allt som är äldre än dagens datum-30 dagar
...WHERE datum<now()-30
Dateadd går också att använda här också:
http://www.devguru.com/Technologies/vbscript/quickref/dateadd.html