webForumDet fria alternativet

Nyhets script!

13 svar · 413 visningar · startad av CatZ

CatZMedlem sedan jan. 20022 440 inlägg
#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
@ndersMedlem sedan juni 200032 969 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,

CatZMedlem 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 :(

@ndersMedlem sedan juni 200032 969 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.

CatZMedlem 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)

?

@ndersMedlem sedan juni 200032 969 inlägg
#6

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

mvh,

CatZMedlem sedan jan. 20022 440 inlägg
#7

/red det va inget :P

@ndersMedlem sedan juni 200032 969 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,

CatZMedlem 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 ?

CatZMedlem 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.

CatZMedlem 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 ?

LarsGMedlem sedan dec. 200012 464 inlägg
#12
WHERE NrDatum >= dateadd('d',-day(DateAdd('m', -1, date()))+1,dateadd('m',-1,date()))
CatZMedlem 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 :)

CatZMedlem 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

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)