Avatar billede voller Nybegynder
05. juli 2002 - 18:28 Der er 6 kommentarer og
1 løsning

Nyheder + arkiv

Hejsa. :o)


Jeg sidder og roder med et nyhedssystem med tilhørende administrationssystem. Jeg har to problemer, der begge er knyttet til måneder.

1. På forsiden vil jeg gerne have vist alle de nyheder, der er oprettet i den måned det år man nu engang befinder sig i. Altså vil jeg f.eks. lige nu kun have nyheder der er oprettet i juli måned.
Det har jeg sådan set fundet ud af, men jeg har en formodning om det kan gøres smartere. Min kode
<%
Session.LCID = 1030
strNowmonth = FormatDateTime(Now, vbShortDate)
strNowmonth = Month(strNowmonth)
strNowyear = FormatDateTime(Now, vbShortDate)
strNowyear = Year(strNowyear)
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("min_db.mdb")
Conn.Open DSN
strSQL = "SELECT * FROM min_tabel Where year = '" & strNowyear & "' AND month = '" & strNowmonth & "' ORDER BY Id DESC"
Set rs = Conn.Execute(strSQL)
%>

I ovenstående kode har jeg altså oprettet to kolonner (year & month) med henholdvis tallet for måneden og året som indlægget blev oprettet i. De virker sådan set OK, men sagen er den, at jeg allerede har et datofelt i vbShortDate-format, altså f.eks. 03-07-2002. Kan man ikke på en eller anden måde få taget månden og året fra det felt OG bruge det i strSQL så man slipper for de to kolonner month og year? Jeg er helt med på f.eks. year(rs("Dag")) og month(rs("Dag")), men hvordan kan jeg bruge det i strSQL?


2. Til det her nyhedssystem vil jeg gerne have et arkiv. Kan man gøre noget smart, så arkivet automatisk finder ud af, fra hvilket år og hvilke måneder der er nyheder og så selv opretter links til en arkivside, f.eks. href="arkiv.asp?month=1&year=2002". Her er jeg lidt på bar bund. Det at lave selve arkivsiden, der kigger på Querystrings og hiver de relevante records ud er ikke noget problem. Det er mere den side, hvor henvisningerne bliver dannet: Kan man få ASP til selv at kigge i en database, tælle op fra hvilke måneder og år der er nyheder og så skrive henvisninger til de forskellige måneder i de forskellige år? Her er jeg helt på bar bund. :o)


På forhånd tak for hjælpen.

/voller.
Avatar billede tmceu Praktikant
05. juli 2002 - 19:24 #1
SELECT * FROM Tabel WHERE Month(Dato) = Month(Date()) AND Year(Dato) = Year(Date())

Mht. arkivet, hvad er kriteriet? Alt før indeværende måned?
Avatar billede voller Nybegynder
05. juli 2002 - 20:17 #2
Det virker fint, tak. :o)

Angående arkivet: Kriteriet er, at min arkivside selv generer links til alle de måneder og år der er blevet skrevet noget. Dvs. at siden selv roder min database igennem og finder i ud af i hvilke måneder i hvilke år der er oprettet nogle indlæg - Og laver links til de sider.

Med hensyn til links'ne har jeg tænkt man kunne bruge Querystrings, så et link kunne komme til f.eks. at hedde href="arkiv.asp?month=03&year=2002. Det tror jeg godt, jeg kan klare selv. Det er mere det at kigge databasen igennem og automatisk generere links jeg ikke fatter noget af.

Tak indtil videre.
Avatar billede voller Nybegynder
05. juli 2002 - 20:21 #3
Nåhjah, arkivet behøver ikke lave link til den aktuelle måned. Den er jo på forsiden.
Avatar billede tmceu Praktikant
05. juli 2002 - 20:38 #4
Du kan eks. bruge dette SELECT statement

SELECT Year(Dato) AS Aar, Month(Dato) AS Maaned, COUNT(*) AS Antal
FROM Tabel
WHERE Month(Dato) <> Month(Date()) AND Year(Dato) <> Year(Date())
GROUP BY Year(Dato), Month(Dato)
ORDER BY Year(Dato), Month(Dato)

Og med dit recordset

Do Until objRS.EOF

response.write "<A HREF=""arkiv.asp?year=" & objRS("Aar") & "&month=" & objRS("Maaned") & """>Arkiv: " &  objRS("Aar") & "/" & objRS("Maaned") & " (" & objRS("Antal") & "</A><BR>"objRS("Maaned") & """>"

objRS.MoveNext
Loop

Dette skulle gerne udskrive et link med flg. tekst "Arkiv: 2002/6 (13)", altså arkiv for 6. måned 2002 og der er ialt 13 nyheder.
Avatar billede tmceu Praktikant
05. juli 2002 - 20:56 #5
Der var lige en fejl i udskrivning af linket, ved ikke hvad jeg tænkte på :-)

response.write "<A HREF=""arkiv.asp?year=" & objRS("Aar") & "&month=" & objRS("Maaned") & """>Arkiv: " &  objRS("Aar") & "/" & objRS("Maaned") & " (" & objRS("Antal") & ")</A><BR>"
Avatar billede voller Nybegynder
05. juli 2002 - 22:06 #6
Jeg har fumlet lidt med det og redigeret lidt hist og her og er kommet frem til noget der virker. Så tak. :o)
Avatar billede tmceu Praktikant
05. juli 2002 - 22:16 #7
Det var så lidt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester