cazeMedlem sedan sep. 20016 059 inlägg I ett forum som jag har nu, uppstår ett trist problem, vilket är att inläggen verkar sorteras efte datumet i månaden, spelar alltså ingen roll vilket månad det är. Alltså att ett inlägg som skrivits den 2 februari sorteras före ett inlägg som skrevs den 16 januari om ni förstår mig rätt..
<%
function avrunda(x)
If instr(x,",") OR instr(x,".") Then
avrunda = int(x) + 1
Else
avrunda = x
End If
End function
Dim currentpage, postsperpage, pages, postsshown, strdb, i, nextp, prevp
currentpage = Request("sida")
postsperpage = 8
If currentpage = "" OR currentpage <=0 Then
currentpage = 1
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/aspforum.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From forum WHERE ref_id = 0 ORDER BY senastedatum DESC"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
pages = avrunda(RecSet.RecordCount/postsperpage)
RecSet.Move ((currentpage*postsperpage)-postsperpage)
nextp = currentpage + 1
prevp = currentpage - 1
%>
Kan man kanske hitta felet här i koden...
SebbeMedlem sedan jan. 20032 285 inlägg Kanske en dum fråga, men är fältet i databasen av typen datum?
cazeMedlem sedan sep. 20016 059 inlägg Vad menar du, det finns en flik i databasen som heter senastedaum ja, eller missförstår jag dig?
SebbeMedlem sedan jan. 20032 285 inlägg Nej, det jag undrade var om fältet i databasen (senastedatum) är av typen datum. :)
cazeMedlem sedan sep. 20016 059 inlägg Vet inte, hur tar jag reda på det?
SebbeMedlem sedan jan. 20032 285 inlägg Det står i Access när du går in i tabellen i designläge (tror jag det heter). Har tyvärr inte Access, så jag kan inte ge dig en skärmdump, men det ska inte vara alltför svårt att hitta. :)
SebbeMedlem sedan jan. 20032 285 inlägg Nej, den är ju av typen Text. Ändra det i den högra kolumnen bredvid senastedatum, så borde det nog funka. :)
cazeMedlem sedan sep. 20016 059 inlägg Det funkade tyvärr inte efter att ha ändrat det du sa :(
PoffeMedlem sedan apr. 20022 743 inlägg Hur sparar du datumet i databasen?
Är det rätt format på det, ex. 2004-03-08, och fälttypen är Datum/Tid så ska det fungera.
cazeMedlem sedan sep. 20016 059 inlägg så här ser koden ut i filen där man skriver ett nytt inlägg:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/aspforum.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From forum"
RecSet.Open Addera, Connect, 3, 3
RecSet.AddNew
RecSet("namn") = Session("anvandarnamn")
RecSet("rubrik") = Request.Form("rubrik")
RecSet("inlagg") = Request.Form("texten")
RecSet("email") = Session("email")
RecSet("senastedatum") = now
RecSet("datum") = now
RecSet("senastenamn") = Session("anvandarnamn")
If Request.QueryString("ref_id") = "" Then
RecSet("kategori") = Request.Form("kategori")
End If
RecSet("svar") = 0
RecSet("visningar") = 0
If Request.QueryString("ref_id") = "" Then
RecSet("ref_id") = 0
Elseif Request.QueryString("ref_id") <> "" Then
RecSet("ref_id") = Request.QueryString("ref_id")
End If
RecSet.Update
RecSet.Close
Connect.Close
If NOT Request.QueryString("ref_id") = "" Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/aspforum.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From forum WHERE id = " & Request.QueryString("ref_id")
RecSet.Open Addera, Connect, 3, 3
RecSet("senastedatum") = now
RecSet("senastenamn") = Session("anvandarnamn")
RecSet("svar") = RecSet("svar") + 1
RecSet.Update
RecSet.Close
Connect.Close
End If
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/aspforum.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From medlemmar WHERE anvandarnamn = '" & Session("anvandarnamn") & "'"
RecSet.Open Addera, Connect, 3, 3
RecSet("senastedatum") = now
RecSet("senasterubrik") = Request.Form("rubrik")
RecSet("inlagg") = RecSet("inlagg") + 1
RecSet.Update
RecSet.Close
Connect.Close
Response.Redirect "default2.asp?val=tackforditt"
%>
cazeMedlem sedan sep. 20016 059 inlägg Ingen som kan se problemet?
@ndersMedlem sedan juni 200032 969 inlägg Om fälttypen är datum/tid skall det gå utmärkt att sortera på datumfältet.
cazeMedlem sedan sep. 20016 059 inlägg
@nders skrev:
Om fälttypen är datum/tid skall det gå utmärkt att sortera på datumfältet.
senaste daum är nu Datum i fältet, och det fungerar inte ändå :(
J.N.Medlem sedan apr. 20031 660 inlägg HEJ!
Tack för all kod, men det har med databasen att göra.
Som @nders skriver, det ska fungera!
Råd:
- titta i databasen, skriv in (om)/kontrollera så datumen är rätt formaterade
- gör en ny tom test-tabell, lägg in data, ska fungera