View Full Version : Nyhets script!
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
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,
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 :(
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.
du menar nyheter = dateadd(datepart("m"), date), -1)) ?
Eller menar du i SQL frågan WHERE NrDatum >= dateadd(datepart("m", date), -1) ?
Den senare borde fungera, om du ser till att kolla upp syntaxen på DateAdd(). ;)
mvh,
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('m', -1, now())" _Red: redigera så där. Vad är det för stil? ;)
Mvh,
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 ?
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.
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 ?
WHERE NrDatum >= dateadd('d',-day(DateAdd('m', -1, date()))+1,dateadd('m',-1,date()))
Wow!! Det måste vara den mest invecklade datum formel jag sett än :p tack LarsG, ska försöka analysera det hela nu :)
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
vBulletin® v3.8.6, Copyright ©2000-2013, Jelsoft Enterprises Ltd.