25. juni 2001 - 17:23Der er
5 kommentarer og 1 løsning
Hent oplysninger fra 2 tabeller
Jeg er ved at lave en side, hvor der bl.a. skal være nogle adresser lister mm.
Det er sådan så man har en funktion f.eks. webmaster. Så bliver man i tabellen: brugere oprettet med navn, adresse, telefon nr. og hele svineriet. Men nogle har 2 eller flere funktioner, hvilket gør at man bliver nød til at oprettet flere brugere, med samme navn telefon nr osv. men med forskellige funktioner.
Problemet kommer så hvis man f.eks. flytter. Så skal man til at rette tlf. nr. i mange forskellige poster hvilket er lidt træls.
Derfor vil jeg gerne have lavet et script der kan følgende:
En access database som indeholder følgende tabeller:
\"brugere\" - med følgende indhold id navn adresse postnr by telefon email
\"funktioner\" - med følgende indhold id refid funktion gruppe
---------------------------------------- Altså alle personlige oplysninger i \"brugere\" og alle de formelle i \"funktioner\" Jeg regner med at \"refid\" i \"funktioner\" skal til for at de kan pares sammen med navnene i \"brugere\" -----------------------------------------
Man skal så på nogle sider kunne hente en adresselister over alle der f.eks. har funktionen \"webmaster\"
På en admin side, skal man så kunne administrere sine forskellige funktioner. Man skal altså kunne få en liste over alle de poster der er i \"funktioner\" hvor \"refid\" svarer til ens \"id\" i \"brugere\" Der skal man så kunne rette og gemme oplysningerne i databasen.
I admin modulet skal man også kunne tilføje nye poster til funktioner
Admin modulet skal være password beskyttet.
------------------------------------------- Jeg er ikke så stærk inden for asp, så koden skal være meget overskulig, samt jeg vil meget gerne have at de forskellige felter der skal hentes fra databasen trækkes ud med noget alla dette:
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath (\"db.mdb\") strSQL = \"select * from brugere ORDER BY navn ASC\" set rs = Conn.execute(strSQL) if rs.EOF then Response.write \":-(\" else Do Until rs.EOF %>
<%=RS(\"navn\")%>
<%RS.MoveNext Loop end if
Conn.Close Set Conn = Nothing%>
------------------------------ Jeg håber det er til at forstå.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
jeg er ikke helt sikker på hvad det er du skal have hjælp til.
På den ene sider lyder det som om du faktisk vil have en eller anden til at lave hele systemet for dig, på den anden kunne man tro det er sammenkoblingen af de to tabeller du bare lige skal have hjælp med.
hvis du laver tre tabeller: brugere: ID, navn, adresse, postnr, by, telefon, email
funktioner: id, funktion, gruppe
associationer: brugerid, funktionid
kan du med følgende sql sætning få adgang til et view over det du gerne vil have - tænk på det som en virtuel tabel:
SELECT bruger.*, funktioner.funktion, funktioner.gruppe FROM (bruger inner join associationer on bruger.id = associationer.brugerid) inner join funktioner on associationer.funktionid = funktioner.id;
(det giver en virtuel tabel med felterne: ID, navn, adresse, postnr, by, telefon, email, funktion, gruppe.
Hvis du vil have alle funktioner tilhørende en bestemt person:
SELECT * FROM funktion INNER JOIN association ON funktion.id = associationer.funktionid WHERE associationer.brugerid = (brugerens ID);
Det ser ikke ud til at der sker ret meget mere og efter som spørgsmålet snart er gammelt, vil jeg tillade mig at lukke det. Jeg har selv fundet løsningen på hvordan man laver udtrækket til siden, og admin modulet kan jeg også godt lave selv!
<% Set Connect = Server.CreateObject(\"ADODB.Connection\") strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"db.mdb\") Connect.Open strDSN Set RS_Outer = Server.CreateObject(\"ADODB.Recordset\") RS_Outer.CursorType = adOpenStatic RS_Outer.Open \"SELECT * FROM test_brugere \", Connect Set gruppe = Connect.Execute(\"Select * From test_funktioner \") %> <td valign=\"top\"> <p> <TABLE BORDER=\"0\" CELLSPACING=\"0\" class=\"tabel4\" colspan=\"3\" width=\"600\"> <TR> <TD class=\"tabel1\" width=\"600\" colspan=\"3\"><span class=\"overskrift\">Hejsa</span></TD> </tr> <TR> <TD width=\"400\"><span class=\"normal\"><b>Navn</b></span></TD> <TD width=\"200\"><span class=\"normal\"><b>Email</b></span></TD> </tr> <% While not RS_Outer.EOF %> <tr><TD class=\"tabel1\" width=\"1\" colspan=\"3\"></TD></tr> <TR> <TD width=\"400\"><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\"> <%=RS_Outer(\"navn\")%></a></TD> <TD width=\"200\"><span class=\"normal\"><a class=\"normal\" href=\"mailto:<%=RS_Outer(\"email\")%>\"><%=RS_Outer(\"email\")%></a></span></TD> <% Set RS_Inner = Connect.Execute(\"Select * FROM test_funktioner WHERE (refID = \" & RS_Outer(\"id\") &\") ORDER BY funktion\") DO UNTIL RS_Inner.EOF %> <TR> <TD width=\"400\"><span class=\"normal\"><UL TYPE=\"square\"><LI><%=RS_Inner(\"funktion\")%></span></TD> <TD width=\"200\"><span class=\"normal\"><%=RS_Inner(\"gruppe\")%></span></TD> </UL> </tr> <%RS_Inner.MoveNext LOOP RS_Outer.MoveNext Wend %> <tr><TD class=\"tabel1\" width=\"1\" colspan=\"3\"></TD></tr> </TABLE><p></td>
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.