Avatar billede stefware Nybegynder
14. januar 2003 - 23:44 Der er 9 kommentarer og
1 løsning

Trække data fra 2 forskellige tabeller i samme db på 1 side

Hej

Jeg sidder og er ved at rode med bådlaugets hjemmeside, jeg har lavet 1 DB hvor alle siderne/nyheder og lign. bliver trukket fra. Nu vil jeg gerne trække data fra to forskellige tabeller på samme side, således at min menu og eks. bestyrelsen kommer frem på samme side. Lidt hjælp ønskes da ASP ikke er min stærke side.

Scriptet pt.:
<%
Response.Buffer = True
Response.Expires = 0


Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("dbldb.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

    Sql = "SELECT * FROM menu ORDER BY navn DESC"
    Set Record =  Con.Execute(Sql)

%>
<html>
<head>
<title>Dbl</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="/test.css" type="text/css">
<link rel="stylesheet" href="/spalte.css" type="text/css">
</head>

<body bgcolor="#000099" text="#000000">
<p><span class="dblhead"><img src="/Dbltest/standerstor.gif" width="135" height="93" align="right">Dronningborg
  Baadelaug<font size="4"> <br>
  <font size="2" face="Courier New, Courier, mono">&nbsp;&nbsp;Lat: 56&deg; 28,011'<br>
  &nbsp;&nbsp;Lon: </font></font><font size="2" face="Courier New, Courier, mono">10&deg;
  4,925'</font><br>
  </span> </p>

<span class="streg">f</span>
<p class="spalte1">
<% Do While Not Record.EOF %>
<br>
  <a href=<% Response.Write Record("adresse") %>><% Response.Write Record("navn") %>
  </a>
  <%
Record.MoveNext
Loop
%>
</p>
<p class="spalte2">Midter<br>
</p>
<p class="spalte3">
</p>
</body>
</html>
<%
    Con.Close
Set Con = Nothing
%>
Avatar billede _darkstar_ Nybegynder
14. januar 2003 - 23:50 #1
Hvad er det som du mangler? Jeg synes ligesom at dit spørgsmål ikke er helt færdigt - det er ikke rigtig muligt at hjælpe uden en beskrivelse af hvad det er for udtræk, du gerne vil have med...
Avatar billede lifeplus17 Nybegynder
14. januar 2003 - 23:57 #2
Jeg syntes at kunne se ud fra din DB connection at du bruger ACCESS. Under objekter kan du vælge et punkt der hedder forespørgsel, der kan du lave en slags tabel der indeholder de elementer fra begge tabeller du ønsker.

når du så laver dit sql kald, kalder du så forespørgelsen i stedet for tabelnavnene.
Avatar billede stefware Nybegynder
14. januar 2003 - 23:57 #3
Jeg sad lige og tænkte det samme;-)
Den anden tabel jeg skal trække fra hedder eks. "bestyrelse" og ligger i samme DB, som jeg læser det (uden at være den store asp haj), er der kun åbent til "menu" tabellen og trækker data her fra, desuden er nogle af datakolonnerne med samme navn, men det kan jo ændres. Hvis jeg vil åbne en forbindelse til "bestyrelse" tabellen og returnere data herfra hvordan gør jeg så det?
Det kan ske jeg vil trække fra endnu en tabel, nemlig nyheder!

Eller er løsningen at samle alle data i en tabel?
Avatar billede stefware Nybegynder
14. januar 2003 - 23:58 #4
Det var naturligvis et svar til Darkstar
Avatar billede medions Nybegynder
15. januar 2003 - 00:04 #5
Du kan Joine dine tabeller ved at sætte kolonne.tabel!

fx.

strSQL = "SELECT id.bestyrelse, navn.bestyrelse, sted.menu, pris.menu FROM bestyrelse, menu"
Set objRs = objConn.Execute(strSQL)

og så hente dem ud sådan her:

objRs("ID")

og

objRs("Sted")

osv.


//>Rune
Avatar billede stefware Nybegynder
15. januar 2003 - 01:00 #6
Jeg skal vist have lidt hjælp til det, det første er jeg nogenlunde med på, jeg har ændret mit script til:
strSQL = "SELECT titel.bestyrelse, navn.bestyrelse, adresse.bestyrelse, post.bestyrelse, telefon.bestyrelse, mail.bestyrelse, funktion.bestyrelse, link.menu, side.menu FROM bestyrelse, menu"
    Set objRs = objConn.Execute(strSQL)

På den måde trækker jeg de data jeg skal bruge fra de to tabeller, men jeg skal have lidt hjælp med det næste hvordan lyder linien med objRs(" ") helt præcist.

Jeg får nemlig følgende fejl:
Microsoft VBScript runtime error '800a01a8'

Object required: 'objConn'

/dbltest/bestyrelse.asp, line 11

Det skulle gerne ende med at menu'en vises i venstreside, bestyrelsen i midten og en gang nyhederne i midten, måske skulle man bare lave en framed version, men det er jo sjovere at få det her til at virke!
Avatar billede medions Nybegynder
15. januar 2003 - 07:53 #7
Set objConn = Server.CreateObject("ADODB.Connection")

strSQL = "SELECT titel.bestyrelse, navn.bestyrelse, adresse.bestyrelse, post.bestyrelse, telefon.bestyrelse, mail.bestyrelse, funktion.bestyrelse, link.menu, side.menu FROM bestyrelse, menu"
    Set objRs = objConn.Execute(strSQL)

//>Rune
Avatar billede stefware Nybegynder
15. januar 2003 - 10:46 #8
Ja det er ikke nemt med sådanne en nybegynder, jeg har ændret scriptet til:

<%
Response.Buffer = True
Response.Expires = 0

Set objConn = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("dbldb.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

    strSQL = "SELECT titel.bestyrelse, navn.bestyrelse, adresse.bestyrelse, post.bestyrelse, telefon.bestyrelse, mail.bestyrelse, funktion.bestyrelse, link.menu, side.menu FROM bestyrelse, menu"
    Set objRs = objConn.Execute(strSQL)


%>

Og det giver følgende fejl:

Microsoft VBScript runtime error '800a01a8'

Object required: 'Con'

/dbltest/bestyrelse.asp, line 9

Linie 9 er:
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

Ang. når jeg skal trække data ud hvad skriver jeg så helt præcist?
<% Response.Write Record("objRs("ID")") %>???

/Stef
Avatar billede stefware Nybegynder
16. januar 2003 - 00:46 #9
Kan det ikke lade sig gøre at lave en dobbelt forbindelse til DB'en ala det her:

<%
Response.Buffer = True
Response.Expires = 0

Set Con = Server.CreateObject("ADODB.Connection")
DBPath = "DBQ=" & server.mappath("dbldb.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & DBPath

    sqlMenu = "SELECT * FROM menu ORDER BY navn
    set rsMenu = Con.execute(sqlMenu)

    sqlForside = SELECT * FROM forside_tekst ORDER BY forside_tekst
    set rsForside = Con.execute(sqlForside)

   
%>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<br>
<% Do While Not rsMenu.EOF %>
  <% Response.Write rsMenu("navn") %>

<br>
<% Do While Not rsForside.EOF %>
<% Response.Write rsForside("forside_tekst") %>



</body>
</html>
<%
Con.Close
Set Con = Nothing
%>
Avatar billede stefware Nybegynder
01. april 2003 - 13:59 #10
æ
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