24. februar 2007 - 21:26Der er
5 kommentarer og 1 løsning
Rangsystem med ASP
Jeg har tidligere haft dette spørgsmål oprettet, men roder stadig med det og jeg er ved at gå i flint over at det ikke virker som det skal.*:^)
Jeg forsøger at lave et rangsystem, som beregnes ud fra en score som countes og derefter sammenlignes med tidligere resultater fra databasen.
Nogen der kan se hvorfor det tilsyneladende er tilfældigt om rang op eller rang ned vælges?
<% brugt = 0 rang = 0 countstop = 0 Set rs = Conn.Execute("SELECT * FROM bruger WHERE ORDER BY SCORE DESC") if not rs.eof then do while not rs.eof if rs("brugernavn") = session("brugernavn") then rang = rang + 1 countstop = ("" & rang & "") if ("" & rang & "") = "1" then response.write(" placering " & rang & "<img border=""0"" src=""image/1.gif"">") else response.write(" placering " & rang & "") end if else rang = rang + 1 end if rs.movenext loop end if
Set rs = Conn.Execute("SELECT * FROM bruger WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'")
if ("" & countstop = rs("rang") & "") AND brugt = "0" then if rs("rangsys") = "1" then response.write ("<img border=""0"" src=""image/down.gif"">") end if if rs("rangsys") = "2" then response.write ("<img border=""0"" src=""image/up.gif"">") end if end if
If ("" & rs("rang") < countstop & "") AND brugt = "0" Then response.write ("<img border=""0"" src=""image/down.gif"">") Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" Conn.execute "UPDATE bruger SET rangsys = '1' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" brugt = 1 end if
If ("" & rs("rang") > countstop & "") AND brugt = "0" Then response.write ("<img border=""0"" src=""image/up.gif"">") Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" Conn.execute "UPDATE bruger SET rangsys = '2' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" brugt = 1 end if end if %>
if ("" & countstop = rs("rang") & "") AND brugt = "0" then if rs("rangsys") = "1" then response.write ("<img border=""0"" src=""image/down.gif"">") end if if rs("rangsys") = "2" then response.write ("<img border=""0"" src=""image/up.gif"">") end if end if
tror at hvis du kunne forklare noget af det du prøver at lave i starten af din kode.
herfra og ned
brugt = 0 rang = 0 countstop = 0
så kan man måske bedre se hvorfor det ikke virker:)
<% 'Søger for at værdierne brugt, rang og countstop er sat til 0 brugt = 0 rang = 0 countstop = 0 Set rs = Conn.Execute("SELECT * FROM bruger WHERE status = '1' ORDER BY SCORE DESC") 'Finder den aktuelle rang placering på hver bruger if not rs.eof then do while not rs.eof if rs("brugernavn") = session("brugernavn") then rang = rang + 1 'Fryser placering countstop = ("" & rang & "") if ("" & rang & "") = "1" then response.write(" placering " & rang & "<img border=""0"" src=""image/1.gif"">") else response.write(" placering " & rang & "") end if else rang = rang + 1 end if rs.movenext loop end if
Set rs = Conn.Execute("SELECT * FROM bruger WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'")
'Hvis placeringen er den samme som sidst, hentes sidste rangstatus if ("" & countstop = rs("rang") & "") AND brugt = "0" then if rs("rangsys") = "1" then response.write ("<img border=""0"" src=""image/down.gif"">") end if if rs("rangsys") = "2" then response.write ("<img border=""0"" src=""image/up.gif"">") end if end if
'Hvis tidligere rangstatus var højere, er stautus nu faldende If ("" & rs("rang") > countstop & "") AND brugt = "0" Then response.write ("<img border=""0"" src=""image/down.gif"">") 'Gemmer status i databasen Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" Conn.execute "UPDATE bruger SET rangsys = '1' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" brugt = 1 end if
'Hvis tidligere rangstatus var lavere, er stautus nu stigende If ("" & rs("rang") < countstop & "") AND brugt = "0" Then response.write ("<img border=""0"" src=""image/up.gif"">") 'Gemmer status i databasen Conn.execute "UPDATE bruger SET rang = '" & countstop & "' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" Conn.execute "UPDATE bruger SET rangsys = '2' WHERE brugernavn = '"&replace(session("brugernavn"), "'", "''")&"'" brugt = 1 end if end if %>
desværre er det ikke til at overskue som værende udefra
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.