webForumDet fria alternativet
Logga in / Bli medlem

Nyhets script!

ASP

13 svar · 413 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Trådstart#1

Hjärnsläpp igen! Jag får inte riktigt ihop det ;) Jag vill bättra på nyhets scriptet lite. Jag vill att om det inte finns 10 nyheter denna månaden ska det tas med från föregående månad men inte tidigare än så.

Hur gör jag det?

Såhär ser nyheterna ut nu iaf:

		If request.querystring("ar") = "" or Request.Querystring("manad") = "" Then
			Ar = ""
			Manad = ""
			titel = "Nytt på sydöstra.com"
			SQL = "SELECT TOP 10 * FROM Nyheter"_
			& " ORDER BY NrDatum DESC"
			set rs = dbCom.Execute(SQL)
		Else
			Ar = Request.Querystring("ar")
			Manad = Request.Querystring("manad")			
			titel = "Äldre Nyheter!"
			SQL = "SELECT * FROM Nyheter"_
			& " WHERE datepart('m', NrDatum) =  "& Manad &" "_
			& " AND datepart('yyyy', NrDatum) =  " & Ar & " "_
			& " ORDER BY NrDatum DESC"
			set rs = dbCom.Execute(SQL)
		End If
Medlem sedan juni 200032 967 inlägg
#2

Var skapar du variablerna Manad och Ar?
Du kan skapa dem med hjälp av DateAdd() så de innehåller månad och år från förra månaden.

Mvh,

Medlem sedan jan. 20022 440 inlägg
#3

Jao men jag behöver skapa ett intervall som täcker date och en månad bakåt! :)

Nu ska jag tyvärr till joppet (ska lossa containers hela dagen :(

Medlem sedan juni 200032 967 inlägg
#4

Jao men jag behöver skapa ett intervall som täcker date och en månad bakåt!

Nej. Om du skapar ett datum som nyheterna får vara nyare än så begränsar du jättebra med det datumet tillsammans med top 10 i SQL-frågan.

Medlem sedan jan. 20022 440 inlägg
#5

du menar

nyheter = dateadd(datepart("m"), date), -1))

?
Eller menar du i SQL frågan

 WHERE NrDatum >= dateadd(datepart("m", date), -1)

?

Medlem sedan juni 200032 967 inlägg
#6

Den senare borde fungera, om du ser till att kolla upp syntaxen på DateAdd(). ;)

mvh,

Medlem sedan jan. 20022 440 inlägg
#7

/red det va inget :P

Medlem sedan juni 200032 967 inlägg
#8

Du ska använda apostrofer inne i SQL-frågan. Jag brukar också använda now() för datum i SQL-frågor mot Access.

& " WHERE NrDatum >= DateAdd([b]'m'[/b], -1, [b]now()[/b])" _

Red: redigera så där. Vad är det för stil? ;)

Mvh,

Medlem sedan jan. 20022 440 inlägg
#9
			SQL = "SELECT TOP 20 * FROM Nyheter" _
			& " WHERE NrDatum >= #" & DateAdd("m", -1, date) & "# " _
			& " ORDER BY NrDatum DESC"
			set rs = dbCom.Execute(SQL)

ger inga nyheter alls... är jag blind eller nåt ?

Medlem sedan jan. 20022 440 inlägg
#10

Argh LarsG sade åt mig för en vecka sedan eller nåt med apostroferna :( Jag skyller på att jag är trött och tackar @nders för hjälpen.

Medlem sedan jan. 20022 440 inlägg
#11

En sak bara!!

mitt sätt fungerade visst /red också!!! :e

Men problemet är att nyheten jag sökte var skriven den 1:e förra månaden och det är den 2:e idag. När jag körde -2 istället så fungerade det :) Kan man göra på något sätt så att den går hela vägen tillbaka till den förste ?

Medlem sedan dec. 200012 464 inlägg
#12
WHERE NrDatum >= dateadd('d',-day(DateAdd('m', -1, date()))+1,dateadd('m',-1,date()))
Medlem sedan jan. 20022 440 inlägg
#13

Wow!! Det måste vara den mest invecklade datum formel jag sett än :p tack LarsG, ska försöka analysera det hela nu :)

Medlem sedan jan. 20022 440 inlägg
#14
SQL = "SELECT TOP 20 * FROM Nyheter" _
& " WHERE NrDatum >= #" & dateadd("d",-day(DateAdd("m", -1, date()))+1,dateadd("m",-1,date())) & "# " _
& " ORDER BY NrDatum DESC"
set rs = dbCom.Execute(SQL)

Fungerar precis som det ska. Tack för hjälpen @nders och LarsG

271 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)