webForumDet fria alternativet

Topplista

6 svar · 268 visningar · startad av fredrik99

fredrik99Medlem sedan maj 2000426 inlägg
#1

Jag har en topplista inlagd i en databas, sedan vill jag presentera listan, vilket inte är några problem förrän flera det är flera på samma poäng.

I loopen har jag lagt en räknare, men när flera personer är på samma poäng skall alla ha samma placering.

Exempel:

1. Göran 11p
2. Gurra 10p
Ante 10p
Gunnar 10p
5. Per 7p
Gösta 7p
ect...

Gör det att lösa?

Engine^Medlem sedan dec. 20003 887 inlägg
#2
intPlats = 1
intSamma = 1
intSenastPoang = 0

While Not rs.EOF
  intSenastPoang = rs("poang")
  Respone.Write intPlats & ". " & rs("namn") & intSenastPoang & "<br>"
  rs.MoveNext

  If rs("poang") = intSenastPoang Then
    intSamma = intSamma + 1
  Else
    intPlats = intPlats + intSamma
    intSamma = 1
  End If
Wend

Wohoo... 1000:e

fredrik99Medlem sedan maj 2000426 inlägg
#3

Gött :e

Men jag vill inte att samma placering skall upprepas, utan bara skrivas ut en gång.

Nu är det:
1. Pelle 11p
1. Göran 11p
1. Erik 11p
4. Greven 10p
ect...

Vore kanon om följande skrevs ut:
1. Pelle 11p
Göran 11 p
Erik 11p
4. Greven 10p

Engine^Medlem sedan dec. 20003 887 inlägg
#4
intPlats = 1
intSamma = 1
intSenastPoang = 0
strPlats = "1. "

While Not rs.EOF
  intSenastPoang = rs("poang")
  Respone.Write strPlats & ". " & rs("namn") & intSenastPoang & "<br>"
  rs.MoveNext

  If rs("poang") = intSenastPoang Then
    intSamma = intSamma + 1
    strPlats = ""
  Else
    intPlats = intPlats + intSamma
    intSamma = 1
    strPlats = intPlats & ". "
  End If
Wend

Ok?

fredrik99Medlem sedan maj 2000426 inlägg
#5

Det funkar till 99,9% :)

Resultat skrivs ut, men ett fel msg kommer dessvärre oxå med.

Fel '80020009'
Undantag inträffade.

<%
do until rs.eof
intPlats = 1
intSamma = 1
intSenastPoang = 0
strPlats = "1. "
While Not rs.EOF
  intSenastPoang = rs("totalt")
counter = counter + 1
plac = plac + 1
If counter Mod 3 = 0 then
color = "#E9E7E3"
Else
color = "#FFFFFF"
End If
%>

<tr>
<td bgcolor="<%=color%>" width="30" align="left" valign="top">
<%IF rs("totalt") <> "" THEN%>
<%=strPlats%>
<%else%>
:_
<%end if%>

</td>

<td bgcolor="<%=color%>" width="160" align="left" _
valign="top"><a href="vote_show.asp?id=<%=rs("id")%>"><%=rs("namn")%></a></td>
<td bgcolor="<%=color%>" width="40" align="center" valign="top">

<%IF rs("totalt") <> "" THEN%>
<%=intSenastPoang%>
<%else%>
0
<%end if%>

</td>
<td bgcolor="<%=color%>" width="70" align="right" valign="top">
<%=FormatDateTime(rs("datum"),2)%>

</td>
</tr>

<%
rs.MoveNext
If rs("totalt") = intSenastPoang Then  '-----FEL MEDDELANDET refererar hit'
intSamma = intSamma + 1
strPlats = ""
Else
intPlats = intPlats + intSamma
intSamma = 1
strPlats = intPlats & ". "
End If
Wend

rs.MoveNext
Loop
%>
Engine^Medlem sedan dec. 20003 887 inlägg
#6

Aha... jo du kommer ju till EOF efter ett tag, men det är ju enkelt löst genom att kapsla det i:

If Not rs.EOF Then
  If rs("totalt") = intSenastPoang Then
    intSamma = intSamma + 1
    strPlats = ""
  Else
    intPlats = intPlats + intSamma
    intSamma = 1
    strPlats = intPlats & ". "
  End If
End If
fredrik99Medlem sedan maj 2000426 inlägg
#7

Göbra :)

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