Avatar billede hundevennen Nybegynder
22. juni 2006 - 09:04 Der er 13 kommentarer og
1 løsning

Udtræk fra 5 tabeller

jeg har 5 i stuktur ens tabeller og vil gerne trække f.eks top 5 id fra hver tabel ud og liste dem under hinanden, således at man kan klikke på en af dem og så få vist hvad der står i recordsettet.
tabellen indeholder 4 felter - id, nr, dato og tekst
Avatar billede fennec Nybegynder
22. juni 2006 - 09:16 #1
Snakker vi en top 5 af hver tabel (5x5 resultater) eller en top 5 samlet (5 resultater)??
Avatar billede Slettet bruger
22. juni 2006 - 09:45 #2
hejsa. hvad med noget a la det her:
<html>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.mappath("DinDatabase.mdb")
    if (request.querystring("id") = "" OR request.querystring("tabel") = "")
set rs = Conn.execute("select top 5 * from tabell 1 order by id")
do until rs.EOF
id = rs("id")
%>
<a href="<%=request.servervariables("script_name")%>?tabel=tabel1&id=<%=id%>"><%=id%></a><br>
<%
rs.movenext
loop
rs.close
set rs=nothing
set rs = Conn.execute("select top 5 * from tabel2 1 order by id")
do until rs.EOF
id = rs("id")
%>
<a href="<%=request.servervariables("script_name")%>?tabel=tabel2&id=<%=id%>"><%=id%></a><br>
<%
rs.movenext
loop
rs.close
set rs=nothing
set rs = Conn.execute("select top 5 * from tabel3 1 order by id")
do until rs.EOF
id = rs("id")
%>
<a href="<%=request.servervariables("script_name")%>?tabel=tabel3&id=<%=id%>"><%=id%></a><br>
<%
rs.movenext
loop
rs.close
set rs=nothing
set rs = Conn.execute("select top 5 * from tabel4 1 order by id")
do until rs.EOF
id = rs("id")
%>
<a href="<%=request.servervariables("script_name")%>?tabel=tabel4&id=<%=id%>"><%=id%></a><br>
<%
rs.movenext
loop
rs.close
set rs=nothing
set rs = Conn.execute("select top 5 * from tabel5 1 order by id")
do until rs.EOF
id = rs("id")
%>
<a href="<%=request.servervariables("script_name")%>?tabel=tabel5&id=<%=id%>"><%=id%></a><br>
<%
rs.movenext
loop
rs.close
set rs=nothing
    else
set rs = Conn.execute("select * from " & request.querystring("tabel") & " where id=" & request.querystring("id") & "")
        if NOT rs.EOF then
id = rs("id")
indhold = rs("indhold")
%>
<%=indhold%> - <%=id%>
<%
        end if
rs.close
set rs=nothing
    end if
Conn.close
set Conn=nothing
%>
</body>
</html>

- så skal du bare lige sætte tabelnavnene til det rigtige i henholdsvist hver select-sætning og hvert link...
- og så skal du også huske at angive den korrekte sti til databasen...

\Dan
Avatar billede nielle Nybegynder
22. juni 2006 - 09:57 #3
22/06-2006 09:45:12> Da den kode består af 5 gentagelser af temlig ens kode, ville det være en god ide at placere koden i en funktion, som så kaldes 5 gange.
Avatar billede Slettet bruger
22. juni 2006 - 11:09 #4
- det kommer sandelig da an på hvad det er for noget data der skal hives ud af databasen... Og det bliver jo ikke ligefrem nemmere at forstå asp på denne måde med en function...

- ikke nogen kritik, nielle, men blot min mening...

\Dan
Avatar billede hundevennen Nybegynder
22. juni 2006 - 11:42 #5
fennec - ja
Avatar billede fennec Nybegynder
22. juni 2006 - 12:05 #6
Ja hvad??
1. en top 5 af hver tabel (5x5 resultater) (dannielsen's kode)
2. en top 5 samlet (5 resultater) (IKKE lavet/vist her endnu)
Avatar billede hundevennen Nybegynder
22. juni 2006 - 13:39 #7
fennec - undskyld - 5x5 resultater
Avatar billede fennec Nybegynder
22. juni 2006 - 13:57 #8
Så er det dannielsen's kode du skal bruge. Du skal nok bare udskifte "order by id" til "order by nr" hvis det er det der skal sorteres efter. Og som nielle nævner kan du med fordel lave det som en funktion i stedet.
Avatar billede nielle Nybegynder
22. juni 2006 - 18:43 #9
dannielsen's udsat for funktion'ering:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("DinDatabase.mdb")

Sub UdskrivTabel(tabelNavn)
    sql = "SELECT TOP 5 id, nr, dato, tekst FROM " & tabelNavn & " ORDER BY nr DESC"

    Set rs = Conn.Execute(sql)
    Do While Not rs.EOF
        id = rs("id")
        Response.Write "<a href='" & Request.ServerVariables("script_name") & "?tabel=" & tabelNavn & "&id=" & id & "'>" & id & "</a><br>"
        rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
End Sub

%>
<html>
<body>
<%
If (Request.QueryString("id") = "" Or Request.QueryString("tabel") = "") Then
    Call UdskrivTabel("tabell")
    Call UdskrivTabel("tabel2")
    Call UdskrivTabel("tabel3")
    Call UdskrivTabel("tabel4")
    Call UdskrivTabel("tabel5")
Else
    Set rs = Conn.Execute("SELECT * FROM " & Request.QueryString("tabel") & " WHERE id=" & Request.QueryString("id"))
        If Not rs.EOF Then
        id = rs("id")
        indhold = rs("indhold")
        Response.Write indhold & " - " & id & "<br>"
    End If
    rs.Close
    Set rs = Nothing
End If

Conn.Close
Set Conn = Nothing
%>
</body>
</html>
Avatar billede hundevennen Nybegynder
22. juni 2006 - 19:30 #10
takker for de gode løsninger - der går lige et par dage før jeg får afprøvet dem
Avatar billede nielle Nybegynder
11. juli 2006 - 20:22 #11
Har du fået afprøvet dem?
Avatar billede hundevennen Nybegynder
11. marts 2007 - 13:46 #12
skal ikke bruge det til noget alligevel?? læg et svar
Avatar billede nielle Nybegynder
16. marts 2007 - 20:02 #13
Det er da vist dannielsen som skal lægge et svar på denne her?
Avatar billede hundevennen Nybegynder
29. november 2007 - 12:51 #14
lukker
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