webForumDet fria alternativet

Månads arkiv

ASP

14 svar · 401 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

Hur gör man ett enkelt månads arkiv till nyheterna man har på sidan?

Alltså presentera ett arkiv med länkar som

  • Januari, 2001
  • Februari, 2001

osv

Medlem sedan jan. 20022 440 inlägg
#2
SQL = "SELECT * FROM Nyheter WHERE datum = " & månadsnummer &" "

kan man göra något sådant ?

Medlem sedan mars 2001185 inlägg
#3

typ så här:
sql = "SELECT * FROM Nyheter WHERE datum LIKE '"&år&"-"&månad&"%'"

Medlem sedan dec. 20003 563 inlägg
#4

Det beror på hur datumet ser ut. Om du bara spar med manadsnumret i en kolumn för nyheten kan det se ut såhär.

SQL = "SELECT * FROM Nyheter WHERE manadnummer = "&datepart("m", date)&" "

Om du har ett komplett datum över när nyhten är skriven, eller bara ändå så skulle detta funka.

SQL = "SELECT * FROM Nyheter WHERE datepart(m, datum) = "&datepart("m", date)&" "

r/
Sen kan du alltså byta ut date mot månader som du får fram genom t.ex. en loop.

Medlem sedan jan. 20022 440 inlägg
#5
SQL = "SELECT * FROM Nyheter WHERE datepart(m, NrDatum) = " & datepart("m", date) & " "
set rs = dbCom.Execute(SQL)

Ger följande fel....
Feltyp:
Microsoft JET Database Engine (0x80040E10)
Det har inte angetts något värde för en eller flera nödvändiga parametrar.
/nyheter.asp, line 9

Medlem sedan jan. 20022 440 inlägg
#6

Någon som hajjar vad som e fel ?

Medlem sedan juni 200032 967 inlägg
#7

Jag skulle gissa på att det är för att vi inte vet vad m är. m är en sträng, och skall omslutas på något trevligt sätt:

SQL = "SELECT * FROM Nyheter WHERE datepart([b]'m'[/b], NrDatum) = " & datepart("m", date) & " "
set rs = dbCom.Execute(SQL)

Mvh,

Medlem sedan jan. 20022 440 inlägg
#8

Tack @nders det var precis så ;)

Medlem sedan jan. 20022 440 inlägg
#9
Case "arkiv"
		
SQL = "SELECT * FROM Nyheter WHERE NOT datepart('m', NrDatum) = " & datepart("m", date)
set rs = dbCom.Execute(SQL)	
		
Dim iAntalManader
For iAntalManader = 1 to iSenaste step -1
response.Write "<a href=nyheter.asp?cmd=vm&id=" & rs("NrID") & ">" & rs("NrDatum") & "</a><br>"
next

Det verkar fungera, men hur gör jag så att det presenteras en länk till som plockar fram aktuell månad istället? ska jag köra med År, Månad, Dag och Tid som separata kolumner i databasen istället och ge dem typen Tal ? Har sett att man gör så när man skapar en kalender....

Medlem sedan jan. 20022 440 inlägg
#10
response.Write "<a href=nyheter.asp?cmd=vm&manad=" & FormatDateTime(rs("NrDatum"), vbShortDate) & ">" & rs("NrDatum") & "</a><br>"

Visar ju YYYY-MM-DD, hur gör man för att visa bara månad och år ?

Medlem sedan juni 200032 967 inlägg
#11

Du kan använda funktionen DatePart() för att välja vilka delar av datumet du vill visa.

Mvh,

Medlem sedan jan. 20022 440 inlägg
#12

tack igen @nders! :f

datePart("yyyy", rs("NrDatum"))

fungerar ju utmärkt, men hur lägger jag till månaden till det ?

datePart("yyyy+månad", rs("NrDatum")) ??
Medlem sedan juni 200032 967 inlägg
#13

Om månad är mm (minns inte riktigt):

datePart("yyyy", rs("NrDatum")) & "-" & datePart("mm", rs("NrDatum"))

typamungo. :)

Medlem sedan jan. 20022 440 inlägg
#14

Hmmm det här kommer aldrig fungera.... för det första skriver detta ut dubbletter. och för det andra måste det bli VÄLDANS svårt att visa nyheterna från den månaden.

Undrar om det inte vore lättare att göra ett fält för År ett för Månad ett för dag och ett för tid ?

Medlem sedan jan. 20022 440 inlägg
#15

Någon som har gjort ett månatligt nyhets arkiv ?

258 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)