Avatar billede morfer Nybegynder
18. juni 2004 - 09:23 Der er 18 kommentarer og
1 løsning

kan jeg udtrække data fra 2 tabeller

jeg prøver at udtrække data fra 2 tabeller men kan ikke få det til at virke.
? kan jeg godt udtrække data fra en tabel der har mellemrum i tabelnavnet f.eks. select * from hej med dig - tabel where

jeg bruger følgende kode
<html>
<title>Hente data fra database</title>
<head>
</head>
<body>
<dl>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\jucdk\db\Kursusstyring.mdb"
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From begivenheder,Tidsplaner for kursusafgift - tabel Where begivenhedsid = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)

' Skriv personens data
Response.Write "<dt>Titel:</dt><dd>" & rs("begivenhedsnavn") & "</dd>"
Response.Write "<dt>Sted:</dt><dd>" & rs("StedNavn") & " " & rs("Startdato") & "</dd>"
'Response.Write "<dt>Underviser:</dt><dd>" & rs("Underviser 1") & "</dd>"
'Response.Write "<dt>Fødselsdato:</dt><dd>" & FormatDateTime(rs("Foedselsdato"), vbLongDate) & "</dd>"
'Response.Write "<dt>Pris:</dt><dd>" & rs("Kursus Afgift") & "</dd>"
Conn.Close
Set Conn = Nothing
%>
</dl>
<p><a href="liste.asp">Retur til listen</a></p>
</body>
</html>
Avatar billede fennec Nybegynder
18. juni 2004 - 09:34 #1
Det kan du godt. Du skal bare have defineret hvordan tabellerne hænger sammen.
et eks.

select bruger.*, cityzip.* from (bruger inner join cityzip on cityzip.zip=bruger.zip) where bruger='fennec'
eller:
select bruger.*, cityzip.* from bruger, cityzip where cityzip.zip=bruger.zip and bruger='fennec'

På denne måde har man en tabel med bynavne og postnumre, men man gemmer kun postnummeret på brugeren.

Også en sidste ting. Brug aldrig mellemrum (space) i dine navne på tabeller/kolonner. brug _ eller træk dem sammen (Kursus_Afgift, KursusAfgift)
Avatar billede eagleeye Praktikant
18. juni 2004 - 16:23 #2
Du kan sætte [] omkring tabelnavne og kolonnenavne:

strSQL = "Select * From begivenheder,[Tidsplaner for kursusafgift - tabel] Where begivenhedsid = " & Request.Querystring("id")
Avatar billede morfer Nybegynder
21. juni 2004 - 16:46 #3
tak for hjælpen det var [] der gjorde det + jeg havde skrevet forkert id navn så derfor den lidt sene tilbagemelding ;-)
Avatar billede morfer Nybegynder
21. juni 2004 - 22:58 #4
<html>
<title>Hente data fra database</title>
<head>
</head>
<body>
<dl>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\jucdk\db\Kursusstyring.mdb"
Conn.Open DSN
' Hent fra databasen afhængig af værdien id fra URL
strSQL = "select Begivenheder.* ,undervisere.* from begivenheder, undervisere Where undervisere.begivenhedsid=Begivenheder.begivenhedsid and begivenhedsid = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
Response.Write "<dt>Titel:</dt><dd>" & rs("begivenhedsnavn") & "</dd>"
Response.Write "<dt>Sted:</dt><dd>" & rs("StedNavn") & " " & rs("Startdato") & "</dd>"
Conn.Close
Set Conn = Nothing
%>



</dl>
<p><a href="liste.asp">Retur til listen</a></p>
</body>
</html>
Avatar billede morfer Nybegynder
21. juni 2004 - 23:00 #5
jeg hælder mere til fennec løsning da data fra de to tabeller hører sammen og jeg mangler selvfølgelig også
Response.Write "<dt>Underviser:</dt><dd>" & rs("Fornavn") & "</dd>"
hvis i kan hjælpe kan jeg godt friste med lidt eksta point
Avatar billede eagleeye Praktikant
21. juni 2004 - 23:12 #6
Du kan skrive din SQL sådan her med en JOIN:

strSQL = "select Begivenheder.* ,undervisere.* from begivenheder inner join  undervisere on Begivenheder.begivenhedsid=undervisere.begivenhedsid Where begivenhedsid = " & Request.Querystring("id")
Avatar billede eagleeye Praktikant
21. juni 2004 - 23:17 #7
Eller med left join i stedet for inner join alt efter hvordan du ønsker din join skal virke. inner join tager kun med hvis der er poster som er i begge kolonne hvorimod left join til alle fra Begivenheder og dem i undervisere hvor join-ledet passer.
Avatar billede morfer Nybegynder
21. juni 2004 - 23:23 #8
kan stadig ikke få det til at virke
Avatar billede eagleeye Praktikant
21. juni 2004 - 23:31 #9
Hvordan virker det ikke?
Avatar billede eagleeye Praktikant
21. juni 2004 - 23:42 #10
Jeg smutter for i aften. God nat og sov godt når du når til det.
Avatar billede morfer Nybegynder
22. juni 2004 - 07:35 #11
når jeg prøver at åbne siden kommer der en server 500 fejl ?, jeg kan ikke finde på hvad der elers skulle være galt.
Avatar billede morfer Nybegynder
23. juni 2004 - 23:09 #12
jeg har prøvet at skrive de forespørgslerne på forskelige måder, men lige meget hjælper det. :(
i access databasen er posten begivenhedsid primærnøgle i tabellen Begivenheder og fremednøgle i tabellen Undervisere.
jeg har prøvet med følgende.
<html>
<title>Hente data fra database</title>
<head>
</head>
<body>
<dl>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\jucdk\db\Kursusstyring.mdb"
Conn.Open DSN
' Hent fra databasen afhængig af værdien id fra URL
strSQL = "select * from begivenheder Where BegivenhedsId = " & Request.Querystring("id")
'strSQL = "select * from begivenheder left join  Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where BegivenhedsId = " & Request.Querystring("id")
'strSQL = "select Begivenheder.* ,Undervisere.* from begivenheder left join  undervisere on Begivenheder.BegivenhedsId=undervisere.BegivenhedsId Where BegivenhedsId = " & Request.Querystring("id")
Set rs = Conn.Execute(strSQL)
Response.Write "<dt>Titel:</dt><dd>" & rs("begivenhedsnavn") & "</dd>"
Response.Write "<dt>Sted:</dt><dd>" & rs("StedNavn") & " " & rs("Startdato") & "</dd>"
Response.Write "<dt>Underviser:</dt><dd>" & rs("Fornavn") & "</dd>"
Conn.Close
Set Conn = Nothing
%>



</dl>
<p><a href="liste.asp">Retur til listen</a></p>
</body>
</html>
Avatar billede morfer Nybegynder
23. juni 2004 - 23:21 #13
tabellen begivenheder indeholder idnr på underviseren og den kan jeg godt få vist ved at kalde begivenheder men jeg er interesseret i at få vist navn adresse med mere på underviseren alt efter hvilken begivenhed der bliver kaldt.........hvis det giver mere mening.?
Avatar billede eagleeye Praktikant
23. juni 2004 - 23:27 #14
>>når jeg prøver at åbne siden kommer der en server 500 fejl ?

Du skulle gerne få en bedre fejl kode/beskrivelse ved at slå denne fra i IE:

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Avatar billede eagleeye Praktikant
23. juni 2004 - 23:30 #15
ok der manger en angivelse af tabel navnet i denne SQL sætning i where delen:

strSQL = "select * from begivenheder left join  Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where BegivenhedsId = " & Request.Querystring("id")


Sådan her:

strSQL = "select * from begivenheder left join  Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where begivenheder.BegivenhedsId = " & Request.Querystring("id")
Avatar billede morfer Nybegynder
23. juni 2004 - 23:48 #16
nu for jeg ikke nogen fejl og den udskriver titel og sted fra tabellen begivenheder men ikke noget fra underviser tabellen?
Avatar billede eagleeye Praktikant
23. juni 2004 - 23:49 #17
Så prøv at tilføje det til SQL de kolonne du vil havde med:

strSQL = "select begivenheder.*, Undervisere.fornavn from begivenheder left join  Undervisere on Begivenheder.BegivenhedsId=Undervisere.BegivenhedsId Where begivenheder.BegivenhedsId = " & Request.Querystring("id")


Tjek evt. at du har en post i Undervisere som passer med den i Begivenheder tabellen.
Avatar billede eagleeye Praktikant
23. juni 2004 - 23:53 #18
hvis den ikke direkte kommer med fejl kunne det type på den ikke kan finde en underviser som passer den valgte begivenhed.

For det er vel i denne linje den udskriver det fra underviser tabellen?:
Response.Write "<dt>Underviser:</dt><dd>" & rs("Fornavn") & "</dd>"
Avatar billede morfer Nybegynder
24. juni 2004 - 00:12 #19
jo det er det og hvis jeg kører den nye forespørgsel så for jeg følgende fejl
Undervisernavn:
ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/dbkursus.asp, line 23
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