webForumDet fria alternativet

problem med att visa data

7 svar · 234 visningar · startad av Arre

ArreMedlem sedan juli 200370 inlägg
#1

Hoppas att ni orkar läsa det här.
Jag håller på att göra en script för att lägga in album med "titel", "år" och "spår". Jag har skapat 2 st tabeller i databasen som heter "album" och "tracklisting". I album sparas informationen om albumet och i tracklisting sparas spårnamnen. ID'n som varje album får i tabellen "album" skrivs in i tabellen "tracklisting" i ett fält som heter albumID vid de spåren som är associerade till albumet. Detta för att veta vilka spår som tillhör de olika albumen.

Nu har jag ett problem. Jag vet inte exakt hur jag ska ta ut dessa värden från de olika tabellen, då dessa hör ihop. Om jag vill visa första albumet med ID'n 2 och dess spår som har en 2:a i deras albumID fält, hur ska jag gå tillväga??

Om ni vill se koden så e det bara o hojta till...

Tack på förhand!

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Använd följande sql-fråga

select <deKolumneDuVillHa>
from album inner join tracklisting
on album.id = tracklisting.albumid
where album.id = 2
ArreMedlem sedan juli 200370 inlägg
#3

menar du såhär?

SQL = "SELECT album.titel, album.year, album.bild, tracklisting.tracknumber, tracklisting.trackname FROM tracklisting INNER JOIN album ON tracklisting.albumID = album.albumID Where album.albumID="& albumId &" Order By tracknumber"

För det här kör jag nu.. o den skriver ut spåren så som det ska men, den visar bara ett album i taget...

LarsGMedlem sedan dec. 200012 464 inlägg
#4

den visar bara ett album i taget...

Eftersom du har villkoret

Where album.albumID="& albumId &"

så blir det så. Om du vill visa flera album så får du ändra på wherevillkoret. Vilka album vill du visa?

ArreMedlem sedan juli 200370 inlägg
#5

Jaa såklart!
Tänkte inte ens på det... man kan ju göra såhär:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ="& db2
SQL = "Select albumId, titel, bild From album Order By albumId desc"
Set RecSet = Conn.Execute(SQL)
%>
och sedan:
<%
Do Until RecSet.EOF
albumId = RecSet("albumID")
titel = RecSet("titel")
bild = RecSet("bild")
%>
och avslutningsvis:
<%
SQL = "Select * From tracklisting Where albumID = " & albumId &" Order By tracknumber"
Set RS = Conn.Execute(SQL)
Do Until RS.EOF
%>
<%=RS("tracknumber")%>.<%=RS("trackname")%>
<%
RS.MoveNext
Loop
Set RS = nothing
%>

Eller hur? =) funkar nu..

Tack så hemskt mycket för hjälpen!!

ArreMedlem sedan juli 200370 inlägg
#6

drack en kopp kaffe o *vips* så slog det mig plötsligt :P

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Jo, man kan men det finns ingen anledning att göra så. Det sättet är ett av de mest ineffektiva. Du kan få ut allt data med en fråga.

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ="& db2
SQL = "Select albumId, titel, bild,trackname,tracknumber  From album iner join tracklisting on album.id = tracklisting.albumid Order By albumId desc, trackNumber"
Set RecSet = Conn.Execute(SQL)
ptitel = ""
while not  RecSet.EOF
if  ptitel <> recset("titel") then
   albumId = RecSet("albumID")
   ptitel = RecSet("titel")
   bild = RecSet("bild")
   'skriv ut det du ska
end if

<%=RS("tracknumber")%>.<%=RS("trackname")%>
<%
RS.MoveNext
wend
Set RS = nothing
%>
ArreMedlem sedan juli 200370 inlägg
#8

Underbart!
Funkar hur bra som helst... tack så hemskt mycket!

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)