Avatar billede mskjoldp Novice
10. november 2004 - 00:45 Der er 6 kommentarer og
1 løsning

løkken skal stoppes

Hej E

Hvordan stopper jeg løkken så den ikke viser samme brugers data 3 gange, bare fordi er er tre data på ham i bd'en?

koden:

<%    If mode = "biler" then
        Set rs = Conn.Execute("SELECT * FROM biler INNER JOIN bruger ON biler.nick = bruger.nick WHERE (((bruger.piloter)=True));")%>
<center><table border="0"><tr>
        <td>Pilot:</td>
        <td>Bil:</td>
        <td>Note:</td>
        <td></td></tr>
<%        dim Bnavn, Bilnavn
        Do Until rs.Eof
        Bnavn = rs("nick")
        Bilnavn = rs("bilnavn")%>

        <tr>
        <td valign="top"><%=Bnavn%></td>
        <td><%=Bilnavn%></td>
        <td></td>
        <td></td></tr>

            <%    Set rss = Conn.Execute("SELECT * FROM biler WHERE nick='" & Bnavn & "'")   
                Dim Bkom, BilID
                Do While Not rss.Eof
                Bsrc = rss("Billede")
                Bkom = rss("Kommentar")
                BilID = rs("BilID")%>
                <tr>
                <td></td>
                <td align="center"><a href="http://www.piloter.dk/gfx/profil/<%=Bsrc%>" target="_blank"><img src="gfx/profil/<%=Bsrc%>" width="200px" border="0"></a></td>
                <td valign="top"><%=Bkom%></td>
                <% If Session("nick") = Bnavn OR Session("admin") = "True" Then %><td width="1px" valign="bottom"><input type="button" value="Slet" class="form" onClick="if(confirm('Er du sikker på at du vil slette <%=Bsrc%>?'))location.href='piloter.asp?mode=sletbiler&amp;id=<%=BilID%>'; else this.href='piloter.asp'"></td><%Else%><td></td><% End if %>
                </tr>
            <%    rss.MoveNext
                Loop
                rss.Close
                Set rss = Nothing %>

<%        rs.Movenext
        Loop
        rs.Close
        Set rs = Nothing %>
        </table>
<%    End if %>
Avatar billede hiks Nybegynder
10. november 2004 - 08:31 #1
du kan gøre det på flere måder!

Det bedste er nok i dit SQL-udtræk, hvor du kan lave en group by og så din person - men nu ved jeg ikke lige hvordan din tabelstruktur er.

Det andet du kan gøre at at ligge hans id (eller hvad du nu har på ham) i en tempID variabel som du skriver ved starten af din løkke - og så ved næste gennemløb tester du så på om tempID = næsteIDiDatabase...

/hiks
Avatar billede mskjoldp Novice
10. november 2004 - 14:26 #2
Hej hiks

Det lyder som en god ide at gøre det i SQL udtrækket. Men hvordan skriver jeg koden? Jeg har prøvet at lave en forespørgsel i Access DB'en hvor jeg laver SQL udtrækket som står ovenfor: "SELECT * FROM biler INNER JOIN bruger ON biler.nick = bruger.nick WHERE (((bruger.piloter)=True));"  .... ydeligere ville jeg så lave en begrænsning i udtrækket, der nok er det samme som du skriver om Groupe By -> person, men hvordan laver jeg den begrænsning? Er der en funktion i Access når jeg laver en forespørgsel, der kan lave en sådan begrænsning? eller kan jeg skrive noget kode i SQL sætningen så den kun tager én person, men alle personens indlæg, som kun bliver listet i en lang rækkefølge af én gang.

Er det til at forstå?
Skjold
Avatar billede mskjoldp Novice
10. november 2004 - 15:49 #3
det er nok nemmere at vise:

Her er problemet: http://www.piloter.dk/piloter.asp?mode=biler

Der er pt. tre records i tabellen biler, men der laves et 5 udtræk.... det skal reduceres til tre...

Skjold
Avatar billede mskjoldp Novice
10. november 2004 - 15:53 #4
DB'en ser sålede ud:

Bid  Nick Kommentar  Bilnavn  Billede
1  MOL  bla bla    :)      Corvette.jpg
2  GUL  test      :D      MOL.jpg
3  GUL  test2      8)      MOL 6 MUN.jpg


hvis jeg bruger distinct på nick får jeg så ikke kun GUL men én gang...
Avatar billede mskjoldp Novice
10. november 2004 - 15:54 #5
hmm.. DB'en er nu lidt forskubbet herover...
Avatar billede mskjoldp Novice
10. november 2004 - 16:20 #6
Drop ovenstående... der er ingen grund til at gøre det sværere end det er...


Jeg har lavet et kort udtræk fra db'en istedet. Her listes alle rækker i biltabellen... Eneste ændring jeg gerne vil have tilføjet er at navnet(nick) GUL ikke står to gange...

den nye kode er:

<%    If mode = "biler" then
        Set rs = Conn.Execute("SELECT * FROM biler")%>
<center><%=rs.recordcount%><table border="0"><tr>
        <td>Pilot:</td>
        <td>Bil:</td>
        <td>Note:</td>
        <td></td></tr>
<%        dim BilID, Bnavn, Bilnavn, Bkom
        Do Until rs.Eof
        BilID = rs("BilID")
        Bnavn = rs("nick")
        Bilnavn = rs("bilnavn")
        Bkom = rs("kommentar")
        Bsrc = rs("Billede")%>

        <tr>
        <td valign="top"><%=Bnavn%></td>
        <td><%=Bilnavn%></td>
        <td></td>
        <td></td></tr>

        <tr>
        <td></td>
        <td align="center"><a href="http://www.piloter.dk/gfx/profil/<%=Bsrc%>" target="_blank"><img src="gfx/profil/<%=Bsrc%>" width="200px" border="0"></a></td>
        <td valign="top"><%=Bkom%></td>
        <% If Session("nick") = Bnavn OR Session("admin") = "True" Then %><td width="1px" valign="bottom"><input type="button" value="Slet" class="form" onClick="if(confirm('Er du sikker på at du vil slette <%=Bsrc%>?'))location.href='piloter.asp?mode=sletbiler&amp;id=<%=BilID%>'; else this.href='piloter.asp'"></td><%Else%><td></td><% End if %>
        </tr>


<%        rs.Movenext
        Loop
        rs.Close
        Set rs = Nothing %>
        </table>
<%    End if %>

Skjold
Avatar billede mskjoldp Novice
10. november 2004 - 16:28 #7
jeg lukker dette spg...
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