30. august 2008 - 22:12Der er
10 kommentarer og 1 løsning
Hent fra 2 tabeller ud fra overskrift
Jeg har en access DB, hvor jeg har oprettet 2 tabeller. Den ene hedder links1. Her kan jeg indføre links samt en overskrift til linket ud fra den anden tabel (hedder links2) som har en kolonne der hedder linksoverskrift.
links1 kolonner: linknavn | overskrift
links2 kolonner: linkoverskrift
Nu vil jeg gerne på min ASP side udskrive alle linksoverskrifter fra links2 tabellen via et loop, og vise alle tilhørende links fra links1 tabellen som har denne overskrift (hvilket jo påføres ved indsættelse af linket). Håber det mening at læse hvad jeg skriver. For at lave et eksempel:
Link overskrift 2 (links2 tabel) link 6 - overskrift 2 (links1 tabel) link 8 - overskrift 2 (links1 tabel)
Link overskrift 3 (links2 tabel) link 4 - overskrift 3 (links1 tabel) link 9 - overskrift 3 (links1 tabel)
osv. osv.
Jeg har prøvet med nedenstående, der som sagt er lidt gebroken ASP sprog hvilket ikke virker ;-)
<% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/db.mdb") Conn.Open DSN strSQL = "Select * From links1 Order by link" Set rs = Conn.Execute(strSQL)
strengSQL = "Select * From links2 Order by linkoverskrift" Set rstreng = Conn.Execute(strengSQL)
Do While Not rstreng.EOF response.write "<b>" response.write rstreng("linkoverskrift") response.write "</b><br />"
Do While Not rs.EOF If rs("overskrift") = rstreng("linkoverskrift") then Response.write rs("link") Response.write "<br />" else response.write "En fejl opstod!<br />" end if rs.MoveNext Loop
response.write "<br /><br />"
rstreng.MoveNext Loop
Conn.Close Set Conn = Nothing %>
- Dette giver bare et resultat der henter alle rækker fra link1 med strengen "En fejl opstod!" og smider dem ind under den første overskrift fra links2. Her skal den selvsagt skrive linknavnet ud for den overskrift den høre til...
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/vti_log/db.mdb")
Set rs1 = Conn.Execute("Select * From links2 Order by linkoverskrift")
Do While Not rs1.EOF response.write "<b>" response.write rs1("linkoverskrift") response.write "</b><br />"
Set rs2 = Conn.Execute("Select * From links1 WHERE overskrift='"&rs1("linkoverskrift")&"' Order by link") Do While Not rs2.EOF Response.write rs2("link") Response.write "<br />"
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/vti_log/db.mdb")
Set rs1 = Conn.Execute("Select * From links2 INNER JOIN links1 ON links1.overskrift=links2.linkoverskrift Order by linkoverskrift, link"
strForrigeOverskrift = "" intPoster = 0
Do While Not rs1.EOF if(strForrigeOverskrift<>rs1("linkoverskrift"))then strForrigeOverskrift=rs1("linkoverskrift") if(intPoster>0)then Response.Write("</br></br>") response.write "<b>" response.write strForrigeOverskrift response.write "</b><br />" end if
Jeg tænker på mange ting. Bl.a. at hvis du ændrer i et elements overskrift, så skal du ændre det alle steder. Hvis du refererer til ID i stedet, skal du kun ændre 1 sted. Og så fylder det meget mindre.
jeg har brug for lidt hjælp til min hjemmeside med bl.a. en opload funktion. er det noget du kunne hjælpe med, gerne mod betaling.
kan kontaktes på king@mail.dk
Synes godt om
Ny brugerNybegynder
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.