Jag sitter å ska göra ett kort nyhetsnotis system och har kommit på ett par funderingar.
Det är tänkt att först ska man visa senaste månadens nyheter sen ska det stå länkar till de andra månadernas nyheter. typ så här
Nyhet 1 (denna månad)
Nyhet 2 (denna månad)
Nyhet 3 (denna månad)
osv.
Äldre Nyheter
2001 | Jan | Feb | Mars | Apr | Maj | Juni | Juli | Aug
2000 | Jan | Feb | Mars | Apr | Maj | Juni | Juli | Aug | Sept | Okt | Nov | Dec
Där tex 2001 jan ska länka till shownotice.asp?Show=Month&Year=2001&Month=01
frågan är om man ska göra en till tabell med tex åren eller om man kan plocka ut det enklare genom att kolla vilka olika variatoner på 200 det finns i tex NewsInsertDate kolummen. Om man enkelt kan loopa igenom de olika variatonerna på datumen och få fram den här biten
Äldre Nyheter
2001 | Jan | Feb | Mars | Apr | Maj | Juni | Juli | Aug
2000 | Jan | Feb | Mars | Apr | Maj | Juni | Juli | Aug | Sept | Okt | Nov | Dec
Någon som har några tankar om detta innan jag sätter igång
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !
Det är en access db, kan det var därför jag får felmeddelandet
select distinct year(NewsInsertDate) as y, monthname(month(NewsInsertDate)) as m from ShortNews order by 1 desc,2 asc
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Undefined function 'monthname' in expression.
/test/notice.asp, line 16
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !
session.lcid = 1053
'connect
sql = "select distinct year(NewsInsertDate) as y,month(InsertDate) as m from news order by 1 desc,2 asc "
set rs = connect.execute(sql)
while not rs.eof
response.write monthname(rs("m"),true)
rs.movenext
wend
Om du har med true som andra argument till monthname så får du en förkortad version av namnet om du utelämnar den så får du ut hela.
------------------ essentitia preter non sans multiplicandum
Option Explicit
Session.LCID = 1053
Dim Cn, SQLStmt, ArrRS, y
Set cn = Server.CreateObject("ADODB.Connection")
cn.Connectionstring ="DSN=shortnews"
cn.Open
SQLStmt ="select distinct year(NewsInsertDate) as y, month(NewsInsertDate) as m from ShortNews order by 1 desc,2 asc"
Response.Write(SQLStmt)
Response.Write"<br>"
ArrRS = Cn.Execute(SQLStmt).getrows()
For y = 0 to ubound(ArrRS,2)
Response.Write""& ArrRS(0,y) &" - "& monthname(month(arrRS(1,y))) &"<br>"
Next
Erase ArrRS
ger mig
select distinct year(NewsInsertDate) as y, month(NewsInsertDate) as m from ShortNews order by 1 desc,2 asc
2001 - december
2001 - januari
2001 - januari
2001 - januari
2001 - januari
2001 - januari
2001 - januari
2001 - januari
2000 - december
2000 - januari
2000 - januari
2000 - januari
2000 - januari
Det skulle det ju inte bli.. :(
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !
Anävnder din larsg å då fungerar det, om man ska hålla koll på vilet år det är och skriva ut den en gång enbart då borde man typ skapa en räknare och om den ändrar sig bryter man till ny rad, men hur fean gör man det smidigast..
Tack än en gång
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !
Hmm stött på problem, den vill inte skriva ut 2001 som år, vad är fel på min fulkod mån tro ?
dim sql, rs, year
sql = "select distinct year(NewsInsertDate) as y,month(NewsInsertDate) as m from ShortNews order by 1 desc,2 asc "
set rs = cn.execute(sql)
while not rs.eof
If RS("Y") < Year Then
Response.write"<br><br><b>"& Rs("y")&"</b><br>"
End If
Year = Rs("y")
Response.Write"<a href=""ShowNotice.asp?Action=ShowMonth&Month="& RS("m") &"&Year="& RS("y") &""">"
Response.write monthname(rs("m"),true)
Response.Write"</a>"
Response.Write" | "
rs.movenext
wend
Nu skriver den ut
jan | feb | mar | apr | maj | jun | jul | aug |
2000
jan | feb | mar | apr | maj |
ja la nu till
year = 4444 innan jag loopar, är det en smart lösning för att få fram 2001 som år ?
kom på att year inte var ett bra var namn :)
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !
dim sql, rs, year
sql = "select distinct year(NewsInsertDate) as y,month(NewsInsertDate) as m from ShortNews order by 1 desc,2 asc "
set rs = cn.execute(sql)
year = 0
while not rs.eof
If clng(RS("Y") <> clng(Year) Then
Response.write"<br><br><b>"& Rs("y")&"</b><br>"
year = rs("y")
End If
Response.Write"<a href=""ShowNotice.asp?Action=ShowMonth&Month="& RS("m") &"&Year="& RS("y") &""">"
Response.write monthname(rs("m"),true)
Response.Write"</a>"
Response.Write" | "
rs.movenext
wend
men det går väl på ett ut. Huvudsaket att det fungerar.
------------------ essentitia preter non sans multiplicandum
ett problem till som jag inte kan förstå, jag använder denna kod
SQLStmt = "SELECT * FROM ShortNews Where NewsInsertDate BETWEEN "&DATEADD("d", -day(date)+1, date)&" AND "&date&""
Response.Write(SQLStmt)
Response.Write"<br>"
set rs = cn.execute(SQLStmt)
If RS.EOF Then
Response.Write"-Inga notiser"
Else
ArrRS = Cn.Execute(SQLStmt).getrows()
For y = 0 to ubound(ArrRS,2)
Response.Write""& ArrRS(0,y) &""
Next
Erase ArrRS
End If
Jag har 3 poster i db som har newsinsertdate 2001-08-12 men han hittar inte dem, han skriver ut
-inga notiser
om jag skriver ut sql sattsen blir det
SELECT * FROM ShortNews Where NewsInsertDate BETWEEN 2001-08-01 AND 2001-08-29
Det ser ju helt riktigt ut... Vad kan vara fel ?
tack
------------------
Real mad hiphop flavaz kickin' it right from tha street without no FEAR, Yo !