Avatar billede hjep Nybegynder
18. september 2002 - 14:35 Der er 15 kommentarer og
1 løsning

Topscorer

Jeg bruger følgende kode til at vise en topscorerliste

<%
SQLstmt = "SELECT * FROM konkur  ORDER BY ialt desc;"

Set rs = conn.Execute(SQLstmt)
  %>
tekst
<%
Vismax=100
Taeller=0
  DO WHILE NOT rs.EOF and Taeller<=Vismax
  Taeller = Taeller+1
    ID = rs("ID")
    navn = rs("navn")
    ialt = rs("ialt")
    klub = rs("klub")
    pointrunde1 = rs("pointrunde1")

    %>
 
      </td></Tr>
<table border="0" cellpadding="0" cellspacing="0" width="418">
    <Tr>
    <td width="170"><%=navn%></a></td>
<td width="150"><%=klub%></td>
     
<td width="68"><%=ialt%> (<%=pointrunde1%>)</td>
    </tr>
       
      <%
    rs.MoveNext
  LOOP
  RS.Close
conn.Close
Set conn = nothing
Set SQLstmt = nothing 
  %>

Min konkurrence er i fuld gang, men jeg har fundet ud af at jeg mangler at skrive hvad nr. folk ligger. Kan jeg gøre det på en simpelt måde. Der vil være flere som har det samme antal point. Dvs. der kan godt være 3 eller flere som deler førstepladsen. Det er lavet i en accessdatabase. Ialt det er de point som deltageren har.
Avatar billede stoffer Nybegynder
18. september 2002 - 14:51 #1
er det mig der tager fejl eller kan du ikke bare skrive
<%=Taeller%>
Avatar billede stoffer Nybegynder
18. september 2002 - 14:52 #2
lav også denne her om:
"SELECT TOP 100 * FROM konkur  ORDER BY ialt desc;"

der er ingen grund til at vælge mere ud end højst nødvendigt...
Avatar billede stoffer Nybegynder
18. september 2002 - 14:52 #3
svar
Avatar billede hjep Nybegynder
18. september 2002 - 15:12 #4
Øhh ikke helt med. Jeg kan selvfølgelig godt lave et felt der hedder taeller. Men jeg skal jo have den til at starte med nr. 1, 2 osv, Hvis der er 2 på førstepladsen skal der stå 1 ud for nr. 1 og 2. Og 3 ud for nr. 3
Avatar billede thomas_yde Nybegynder
18. september 2002 - 15:24 #5
<%
SQLstmt = "SELECT * FROM konkur ORDER BY ialt desc;"

Set rs = conn.Execute(SQLstmt)
%>
tekst
<%
Vismax=100
placering = 0
Taeller=0
lastValue=0
DO WHILE NOT rs.EOF and Taeller<=Vismax
    'henter oplysninger om spilleren fra databasen
    ID = rs("ID")
    navn = rs("navn")
    ialt = rs("ialt")
    klub = rs("klub")
    pointrunde1 = rs("pointrunde1")

    Taeller = Taeller+1
    placering = placering +1

    if lastValue = ialt then
        placering = placering - 1
    end if

%>

</td></Tr>
<table border="0" cellpadding="0" cellspacing="0" width="418">
<Tr>
<td><!--placering--><%=placering%></td>
<td width="170"><%=navn%></a></td>
<td width="150"><%=klub%></td>
<td width="68"><%=ialt%> (<%=pointrunde1%>)</td>
</tr>

<%
placering = placering + 1
lastValue=ialt
rs.MoveNext
LOOP
RS.Close
conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>



noget lignende det?
Avatar billede hjep Nybegynder
18. september 2002 - 15:41 #6
Jepper meget lign. det. Når jeg bruger ovenstående kode, viser den dog kun nr. 1. Resten skulle jo også gerne med. Kan du se hvor det går galt?
Avatar billede hjep Nybegynder
18. september 2002 - 15:47 #7
Ups det var mig selv, men den er stadigvæk ikke helt god. Her er toppen af resultatet. 1. kolonne er placeringen

1 Michael  4 (2)
3 Kjeld 1 (1)
4 Ricky 1 (1)
6 Fredrik  0 (0)
7 Jens    0 (0)
Her ville jeg jo gerne have den til at hedde 1, 2, 2, 4 og 4
Avatar billede thomas_yde Nybegynder
18. september 2002 - 16:45 #8
Vil du have den til at springe nogle placeringer over?
Avatar billede hjep Nybegynder
18. september 2002 - 16:52 #9
Ja altså hvis antal point (den jeg kalder "ialt" i koden) er den samme for 2 deltagere, så skal de have samme placering. Dvs. listen kunn  se nogenlunde sådan ud

Placering    Navn    point

1            xxxxxx      4
2            xxxxxx      3
2            xxxxxx      3
2            xxxxxx      3
5            xxxxxx      2
5            xxxxxx      2
7            xxxxxx      1
8            xxxxxx      0
Avatar billede thomas_yde Nybegynder
18. september 2002 - 16:55 #10
okie. 2 sek tror måske jeg har en løsning
Avatar billede stoffer Nybegynder
18. september 2002 - 17:00 #11
det der er da ulogisk...det skal da være

Placering    Navn    point

1            xxxxxx      4
2            xxxxxx      3
2            xxxxxx      3
2            xxxxxx      3
3            xxxxxx      2
3            xxxxxx      2
4            xxxxxx      1
5            xxxxxx      0
Avatar billede thomas_yde Nybegynder
18. september 2002 - 17:01 #12
<%
SQLstmt = "SELECT * FROM konkur ORDER BY ialt desc;"

Set rs = conn.Execute(SQLstmt)
%>
tekst
<%
Vismax=100
placering = 0
Taeller=0
lastValue=0
DO WHILE NOT rs.EOF and Taeller<=Vismax
    'henter oplysninger om spilleren fra databasen
    ID = rs("ID")
    navn = rs("navn")
    ialt = rs("ialt")
    klub = rs("klub")
    pointrunde1 = rs("pointrunde1")

    Taeller = Taeller+1
    placering = placering +1

    if lastValue = ialt then
        placering = placering - 1
    else
    placering = Taeller   
    end if

%>

</td></Tr>
<table border="0" cellpadding="0" cellspacing="0" width="418">
<Tr>
<td><!--placering--><%=placering%></td>
<td width="170"><%=navn%></a></td>
<td width="150"><%=klub%></td>
<td width="68"><%=ialt%> (<%=pointrunde1%>)</td>
</tr>

<%
lastValue=ialt
rs.MoveNext
LOOP
RS.Close
conn.Close
Set conn = nothing
Set SQLstmt = nothing
%>
Avatar billede thomas_yde Nybegynder
18. september 2002 - 17:01 #13
stoffer sådan ville jeg også vise den men hvis det nu ikke er tilfældet :)
Avatar billede hjep Nybegynder
18. september 2002 - 17:06 #14
Er det ulogisk.

Jeg har 100 deltagere. Hvis nu de 99 af dem får point, så skal den sidste sgu have at vide at han endte på plads nr. 100. Hvis der er flere der som deler point, ja så risikere jeg jo at sidste mand slutter som nr. 50. . Nå men jeg fedter lige lidt rundt med koden.
Avatar billede hjep Nybegynder
18. september 2002 - 17:11 #15
Logisk eller ej - det virker.
Takker
Avatar billede thomas_yde Nybegynder
18. september 2002 - 21:35 #16
Min fornøjelse :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester