Avatar billede zippy2 Nybegynder
27. april 2004 - 09:57 Der er 10 kommentarer og
1 løsning

Liste med links fra 2 tabeller i asp, sql og acess database

Jeg er ved at lave en filmdatabase over dvd-film og vhs-film. Jeg har lavet en acess database med 2 tabeller og kan sagtens lave en liste med link fra en tabel og kan også hente indhold fra 2 tabeller på samme side. Men jeg kan ikke rigtig finde ud af det når jeg skal hente fra flere tabeller og lave link.
Jeg har taget udgangspunkt i Eksempel 3 her: http://www.html.dk/tutorials/asp/lektion19.asp.

Min kode ser således ud men der mangler ligesom et eller andet. Er der en der vil hjælpe mig??? Mvh Zippy:
<html>
<title>Hente data fra database</title>
<head><h1>DVD</h1>
</head>
<link rel="stylesheet" type="text/css" href="style.css">
<body class="filmliste">
<ul>

<%
' Databaseforbindelsen
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("db.mdb")
Conn.Open DSN

strSQL = "Select * From dvd, vhs Order by UKTitel, uktitel1"
Set rs = Conn.Execute(strSQL)


Do
  ' Filmens titel
  strNavn = rs("UKTitel") & "<br>"
 
  ' laver et link til dvdliste2.asp med Id-værdien i URL
  strLink = "<a href='dvdliste2.asp?id=" & rs("Id") & "'>" & strNavn & "</a>"

  ' Liste med links
  Response.Write "<li>" & strLink & "</li>"

  rs.MoveNext

Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>
</ul>
</body>
</html>
Avatar billede and_ Nybegynder
27. april 2004 - 10:06 #1
Det eksempel fortæller jo ikke hvordan du henter fra 2 tabeller på en gang, men kun en af gangen....

strSQL = "Select * From dvd Order by UKTitel"
Set rs = Conn.Execute(strSQL)

response.write "<b>DVD FILM:</b>"
Do
  ' Filmens titel
  strNavn = rs("UKTitel") & "<br>"
 
  ' laver et link til dvdliste2.asp med Id-værdien i URL
  strLink = "<a href='dvdliste2.asp?id=" & rs("Id") & "'>" & strNavn & "</a>"

  ' Liste med links
  Response.Write "<li>" & strLink & "</li>"

  rs.MoveNext

Loop While Not rs.EOF

strSQL = "Select * From vhs Order by uktitel1"
Set rs = Conn.Execute(strSQL)

response.write "<br><b>VHS FILM:</b>"
Do
  ' Filmens titel
  strNavn = rs("UKTitel") & "<br>"
 
  ' laver et link til dvdliste2.asp med Id-værdien i URL
  strLink = "<a href='dvdliste2.asp?id=" & rs("Id") & "'>" & strNavn & "</a>"

  ' Liste med links
  Response.Write "<li>" & strLink & "</li>"

  rs.MoveNext

Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
Avatar billede zippy2 Nybegynder
27. april 2004 - 10:15 #2
Ja det ved jeg godt. Men det er jo også det der er problemet. Jeg kan ikke finde ud af at hente fra 2 tabeller med links på en gang.
Avatar billede zippy2 Nybegynder
27. april 2004 - 10:25 #3
Tak for koden "and". Den virker fint. Men jeg kunne godt tænke mig en lang listeover DVD og VHS hvor de bliver blandet sammen i alfabetisk lækkefølge. Hvis det kan lade sig gøre????
Avatar billede and_ Nybegynder
27. april 2004 - 10:36 #4
så istedet for at ligge dem i hver sin tabel, så ha en tabel, der fx kunne se sådan ud:

ID      |    Titel        |    Type    |  Beskrivelse
1      | Den grønne mil  |    1      |  God film
2      | Dybet            |    2      |  Oldie but goodie
3      | Katja k i skoven |    1      |  Meget Voksen film

Hvor du definerer med typen hvad det er for en slags film vi snakker om...
i dette tilfælde er 1 DVD og 2 er VHS

er det tydeligt hvad jeg mener?
Avatar billede and_ Nybegynder
27. april 2004 - 10:37 #5
så kan du også lave en knap/select med sortering.... vis kun dvd:

"select * from film where type = 1 order by titel asc"
eller vhs
"select * from film where type = 2 order by titel asc"

og derudover kan du jo selvfølgelig koble genre, udgivelsesår osv på....

men fordelen er at du kun har 1 tabel...
Avatar billede and_ Nybegynder
27. april 2004 - 10:39 #6
det stod ikke lige pænt:

ID    |    Titel            |    Type            |  Beskrivelse
1      | Den grønne mil      |    1              |  God film
2      | Dybet                |    2            |  Oldie but goodie
3      | Katja k i skoven     |    1             |  Meget Voksen film
Avatar billede and_ Nybegynder
27. april 2004 - 10:39 #7
hmmmmm.. irreterende *g*
Avatar billede drengen Nybegynder
27. april 2004 - 11:37 #8
Hej zippy2

Du vil gerne hente data med ét databasekald og med din nuværende arkitektur, dvs. med to tabeller, ergo skal du bruge UNION for at løse opgaven:

SELECT vhs.id AS 'id', vhs.uktitle AS 'uktitle', vhs.uktitle1 AS 'uktitle1' (FROM vhs
UNION
SELECT dvd.id AS 'id', dvd.uktitle AS 'uktitle', dvd.uktitle1 AS 'uktitle1' FROM dvd)


Håber det virker for dig.

Venlig hilsen
Kim Andersen
Avatar billede drengen Nybegynder
27. april 2004 - 11:38 #9
Rettelse:

Den første parentes skal være efter FROM, ikke før, som her:

SELECT vhs.id AS 'id', vhs.uktitle AS 'uktitle', vhs.uktitle1 AS 'uktitle1' FROM (vhs
UNION
SELECT dvd.id AS 'id', dvd.uktitle AS 'uktitle', dvd.uktitle1 AS 'uktitle1' FROM dvd)
Avatar billede zippy2 Nybegynder
05. maj 2004 - 08:26 #10
Jeg har droppet at lave det. Da jeg har lavet en søgefunktion istedet... Og det der "UNION" kan jeg overhovdet ikke finde ud af...
Avatar billede zippy2 Nybegynder
05. maj 2004 - 08:27 #11
Lukket
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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