webForumDet fria alternativet

Sorterar fel efter datum

14 svar · 1 556 visningar · startad av caze

cazeMedlem sedan sep. 20016 059 inlägg
#1

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
#2

Kanske en dum fråga, men är fältet i databasen av typen datum?

cazeMedlem sedan sep. 20016 059 inlägg
#3

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
#4

Nej, det jag undrade var om fältet i databasen (senastedatum) är av typen datum. :)

cazeMedlem sedan sep. 20016 059 inlägg
#5

Vet inte, hur tar jag reda på det?

SebbeMedlem sedan jan. 20032 285 inlägg
#6

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. :)

cazeMedlem sedan sep. 20016 059 inlägg
#7

Tror det , se här:

1.gif
SebbeMedlem sedan jan. 20032 285 inlägg
#8

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
#9

Det funkade tyvärr inte efter att ha ändrat det du sa :(

PoffeMedlem sedan apr. 20022 743 inlägg
#10

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
#11

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
#12

Ingen som kan se problemet?

@ndersMedlem sedan juni 200032 969 inlägg
#13

Om fälttypen är datum/tid skall det gå utmärkt att sortera på datumfältet.

cazeMedlem sedan sep. 20016 059 inlägg
#14

@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
#15

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

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