22. juni 2006 - 09:04Der 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
Snakker vi en top 5 af hver tabel (5x5 resultater) eller en top 5 samlet (5 resultater)??
Synes godt om
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...
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.
Synes godt om
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...
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.
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
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.