Avatar billede steen_hansen Forsker
22. august 2022 - 14:58 Der er 6 kommentarer og
1 løsning

List 3 kolonner fra DB til <tr><td></td></td></td></tr>

Jeg har 3 kolonner, som skal trækkes ud i en tabel

Det er ikke sikkert der er data i alle kolonner. Det er især hvis den første kolonne er tom, at det volder mig problemer.

Er der nogle af kolonnerne, der er tomme, skal der blot stå "-" (uden anførselstegn.

De af kolonnerne fra databasen, som indeholder noget, skal listes ud med hhv RS1200("username"), RS1230("username") eller RS1300("username")

Her vil jeg køre hver <tr></tr> i en løkke
If Not RS.EOF Then
        DO Until RS.EOF
            ..............
        RS.MoveNext
        Loop
End If

Der er ikke kun en RS, der er 3 stykker: RS1200, RS1230 og RS1300

Men det giver problemer, hvis RS1200 er tom (.EOF)

Håber I kan hjælpe. Spørg endelig, hvis der er noget, der skal uddybes.

Koden/HTML:

<tbody class="list align-items-center">
    <% If RS1200.EOF AND RS1230.EOF AND RS1300.EOF Then %>
    <tr>
        <td class="reference text-nowrap">
            -
        </td>
        <td class="reference text-nowrap">
            -
        </td>
        <td class="reference text-nowrap">
            -
        </td>
    </tr>
        <%
    Else
        If Not RS1200.EOF OR RS1230.EOF OR RS1300.EOF Then
            Do Until RS1200.EOF AND RS1230.EOF AND RS1300.EOF
        %>
    <tr>
        <% If RS1200.EOF Then %>
        <td class="reference text-nowrap">
            -
        </td>
        <% ElseIf Not RS1200.EOF Then %>
        <td class="reference text-nowrap">
            <%=RS1200("username")%>
        </td>
        <%
        End If

        If RS1230.EOF Then
        %>
        <td class="reference text-nowrap">
            -
        </td>
        <% Else    %>
        <td class="reference text-nowrap">
            <%=RS1230("username")%>
        </td>
        <%
        End If

        If RS1300.EOF Then
        %>
        <td class="reference text-nowrap">
            -
        </td>
        <% Else %>
        <td class="reference text-nowrap">
            <%=RS1300("username")%>
        </td>
        <% End If %>
    </tr>
        <%
        If Not RS1200.EOF Then
            RS1200.MoveNext
        End If
        If Not RS1230.EOF Then
            RS1230.MoveNext
        End If
        If Not RS1300.EOF Then
            RS1300.MoveNext
        End If
        Loop
    End If
    %>
</tbody>
Avatar billede arne_v Ekspert
22. august 2022 - 15:09 #1
Kan du omskrive dine SQL saaledes at du kun har en query og et record set?
Avatar billede steen_hansen Forsker
22. august 2022 - 16:21 #2
<%
If RS1200.EOF Then
%>
<tr>
    <td>-</td>
</tr>
<%
Else
    If Not RS1200.EOF Then
        Do Until RS1200.EOF
%>
<tr>
    <td>
        <%=RS1200("username")%>
    </td>
</tr>
<%
        RS1200. MoveNext
        Loop
    End If
End If
%>

Det giver så kun én række, og ikke 3 rækker ved siden af hinanden.
<tr>
    <td></td>
    <td></td>
    <td></td>
</tr>

Målet er dette (eksempelvis)

<tr>
    <td>-</td>
    <td>XXXXX</td>
    <td>YYYYY</td>
</tr>

eller

<tr>
    <td>YYYYY</td> (RS1200)
    <td>XXXXX</td> (RS1230)
    <td>-</td> (RS1300)
</tr>
Avatar billede steen_hansen Forsker
22. august 2022 - 16:24 #3
Du får det lige tabuleret lidt, så det er nemmere at forstå

<%
    If RS1200.EOF Then
%>
    <tr>
        <td>-</td>
    </tr>
<%
    Else
        If Not RS1200.EOF Then
            Do Until RS1200.EOF
%>
    <tr>
        <td><%=RS1200("username")%></td>
    </tr>
<%
            RS1200. MoveNext
            Loop
        End If
    End If
%>
Avatar billede steen_hansen Forsker
22. august 2022 - 16:25 #4
Det lykkedes ikke. Sorry. Men jeg håber du kan se meningen.
Avatar billede steen_hansen Forsker
22. august 2022 - 16:43 #5
"Kan du omskrive dine SQL saaledes at du kun har en query og et record set?"

Lige en kommentar: Jeg har søgt på, om man ikke bare kan køre en løkke igennem, uanset om RS1200.EOF, RS1230.EOF eller RS1300.EOF

<% Start løkke uanset hvad der måtte være i tabellen %>
<tr>
    <td>[RS1200]</td>
    <td>[RS1230]</td>
    <td>[RS1300]</td>
</tr>
<% Kør løkke, indtil RS1200, RS1230 eller RS1300 er tomme %>

Men jeg synes ikke det var ligetil at finde noget brugbart
Avatar billede steen_hansen Forsker
22. august 2022 - 16:55 #6
Lidt groft (og sikkert "ulovligt")

    <td>
        <% If Not RS1200 .EOF Then %><%=RS1200("username")%><% Else %>-<% End If %>
    </td>


Hvilke værdier, der er i databasen, afhænger af, om der er puttet noget i RS1200, RS1230 og/eller RS1300

Indtil der er EOF i RS1200, RS1230 og/eller RS1300, skal løkken køres igennem.

Er der intet i RS1300 (eller i de 2 andre), skal der udskrives "-".

Er der en værdi, skal RS1300("username") udskrives
Avatar billede steen_hansen Forsker
26. august 2022 - 00:16 #7
Tak for hjælpen, Arne :)

Jeg udskiftede

If Not RS1200.EOF OR RS1230.EOF OR RS1300.EOF Then

med

If Not RS1200.EOF OR RS1200.EOF OR RS1230.EOF OR RS1300.EOF Then
Do Until RS1200.EOF AND RS1230.EOF AND RS1300.EOF
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

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