Avatar billede emetico Nybegynder
15. januar 2004 - 12:54 Der er 10 kommentarer og
1 løsning

asp Loop virker ikke helt!! HJÆLP

Hej alle :-)

Mit problem er at jeg skal loop en liga fra min access tabel & det gider den også godt.

den looper alt det den skal fornær forskellige klan tags, der tager den kun en og gentager alle stederne.

Jeg har postet scriptet nede under, håber der er en der lige kan se fejlen.

som i kan se skal den tage kolonner fra 2 forskellige tabeller.

<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
    DSN = DSN & "DBQ=" & Server.MapPath("kb.mdb")
    Conn.Open DSN
    set rsE1337_league = conn.execute("SELECT * FROM e1337_league")
    If Not (rsE1337_league.EOF and rsE1337_league.BOF) Then
    set rsE1337_tag = conn.execute("SELECT klan_tag FROM klaner WHERE id="& rsE1337_league("Klan_id"))
    If Not (rsE1337_tag.EOF and rsE1337_tag.BOF) Then
    set rsE1337 = conn.execute("SELECT * FROM e1337_league Order by Seeding_id")
    do while not rsE1337.EOF
%>
<form name="e1337" action="" method="post">
<td class="textNorm" bgcolor="#FFFFCC" width="100%"><%=rsE1337_tag("Klan_tag")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Position")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Kampe")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Rounds_os")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Rounds_dem")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("+_-")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Vundet")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Uafgjort")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Tabt")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Points")%></td>
<td class="textNorm" bgcolor="#FFFFCC" align="center"><%=rsE1337("Seeding_id")%></td>
</tr>
<td class="textNorm" width="100%"><input type="text" name="kampe" maxlength="50" size="10"value="<%=rsE1337("Klan_tag")%>"></td>
<td class="textNorm" align="center"><%=rsE1337("Position")%></td>
<td class="textNorm"><input type="number" name="kampe" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="rounds_os" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="rounds_dem" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="+_-" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="vundet" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="uafgjort" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="tabt" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="points" maxlength="5" size="3"></td>
<td class="textNorm"><input type="number" name="seeding_id" maxlength="5" size="3"></td>
</tr>
<%
rsE1337.movenext
loop
%>
<tr>
<td colspan="11" align="center"><center><input type="submit" value=" Opdater E1337 "></center></td>
</tr>
</table>
</form>
<%
Conn.Close
Set Conn = Nothing
end if
%>
<%end if%>

hvorfor der er <%end if%> til sidst er fordi at den skal loop nogle andre ligaer nede under :-)
Avatar billede powerade Nybegynder
15. januar 2004 - 13:07 #1
Du ska ha en rsE1337_tag.movenext
Avatar billede keysersoze Ekspert
15. januar 2004 - 13:44 #2
grunden til fejlen er at du tænker forkert... først vælger du alle fra "e1337_league" i en SQL - derefter vælger du navnet på den første og KUN den færste klan i "klaner" - og til sidst vælger du så IGEN alt fra "e1337_league".

Når du har gjort dette looper du det sidste recordset igennem men KUN det sidste - dvs du bliver ved med at udskrive den første værdi fra "klaner" da du ikke looper det igennem.

Enten skal du lære at bruge JOINS i SQL så du kan forespørge værdier fra to (eller flere) tabeller på én gang) eller også skal du først spørge på klan_tag inde i dit loop;

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("kb.mdb")
Conn.Open DSN
set rsE1337 = conn.execute("SELECT * FROM e1337_league Order by Seeding_id")
do while not rsE1337.EOF
    set rsE1337_tag = conn.execute("SELECT klan_tag FROM klaner WHERE id="& rsE1337 ("Klan_id"))
    'udskriv dine poster
rsE1337.movenext
loop
Avatar billede powerade Nybegynder
15. januar 2004 - 14:20 #3
Ja keyser er inde på noget der..
Evt strukturer det i stil med følgende.. (pseudo)
1. Klaner = Select alle klaner i liga
2. Loop til Klaner.EOF
3. Klaninfo = Select info hvor id = Klaner("id")
4. Loop til Klaninfo.EOF (Burde kun være 1 record)
5. Klaner.Movenext
6. End loop (Klaninfo)
7. End loop (Klaner)
Avatar billede emetico Nybegynder
15. januar 2004 - 16:31 #4
jeg takker, jeg prøver det lige af også acceptere jeg svar hvis det dur ;-)
Btw.. Er der nogen links til eventuel torturials to JOINS i SQL ??
Avatar billede emetico Nybegynder
15. januar 2004 - 16:36 #5
Det virkede :-)

Jeg acceptere :-) og tak for hjælpen. jeg kigger lige ind nogle gange for at se om du har skrevet en link til eventuel toturials til Joins
Avatar billede keysersoze Ekspert
15. januar 2004 - 16:37 #6
køb en bog om access og SQL fra IDG - de koster hver omkring 70 kroner og er rigtig gode.
Avatar billede keysersoze Ekspert
15. januar 2004 - 16:38 #7
I access kan du jo vha en forespørgsel få programmet til at generere en SQL-kode - så det burde være forholdsvis lige til :)

men kig engang på de to bøger alligevel
Avatar billede emetico Nybegynder
15. januar 2004 - 16:42 #8
Arha det er det man bruger forespørgsel til :-)
ja jeg er først begyndt på asp for 14 dage siden, men det går da frem af :-)
og tak for hjælpen
Avatar billede keysersoze Ekspert
15. januar 2004 - 16:44 #9
forespørgsel er nu ikke specielt beregnet til ASP - men det er en hurtig genvej til indviklede SQL-forespørgsler.
Avatar billede emetico Nybegynder
15. januar 2004 - 17:28 #10
Du virker som om du har styr på det lort der :-)
Ærveligt man ikke lige har dig ved siden af, for tit er det sådan nogle små fejl jeg bare ikke kan regne ud og bruger flere dage på dem.
jeg kunne også poste hver en fejl, men så havde jeg slet ikke flere points tilbage hehe :-)
Avatar billede keysersoze Ekspert
15. januar 2004 - 21:25 #11
jah - men man skal jo starte et eller andet sted :)
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