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 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
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 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?
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 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