04. marts 2004 - 20:18Der er
10 kommentarer og 2 løsninger
Udskriv fra flere tabeller
Hejsa
Jeg har et nyhedssystem med en database som består af to tabeller. Tabellerne hedder Images og Nyhed. Jeg vil så lave en lang liste over nyhederne det virker også fint, men jeg vil gerne have det tilhørende billede med fra Images tabellen. I Images tabellen ligger der fire billeder under hver NyhedSID, men jeg vil kun udskrive det første af dem, hvordan klarer jeg den sammen med nedenstående kode.
strSQL = "Select * From Nyhed Order by NyhedID Desc" sql = "select * from images group by NyhedSID order by NyhedSID desc"
Set rs = Conn.Execute(strSQL) set ImConn = ImConn.execute(sql) IF RS.EOF THEN Conn.Close ImConn.Close ELSE WHILE NOT RS.EOF IF CellColor = "FFFFFF" THEN CellColor = "C0C0C0" ELSE CellColor = "FFFFFF" END IF %>
Sådan her... Så kan du hente billederne ud samtidig med at du henter de forskellige nyheder. Billederne ligger i ImConn. Så skal du bare huske at rykke imConn frem samtidig med at du tæller rs frem.
Så skal du rette * il navnet på den kolonne der indeholder stierne på de billeder du skal benytte på siden i denne linie: sql = "select * from images group by NyhedSID order by NyhedSID desc"
Den har jeg også prøvet men det giver følgende fejl :
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'Pic' as part of an aggregate function.
Koden ser sådan ud :
<%
Set Conn = Server.CreateObject("ADODB.Connection") Set ImConn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("database/car.mdb") Conn.Open DSN ImConn.open DSN strSQL = "Select * From Nyhed Order by NyhedID Desc" sql = "Select Pic from Images Group by NyhedID Order by NyhedID Desc" Set rs = Conn.Execute(strSQL) Set ImConn = ImConn.execute(sql) IF RS.EOF THEN Conn.Close ImConn.Close ELSE WHILE NOT RS.EOF IF CellColor = "FFFFFF" THEN CellColor = "C0C0C0" ELSE CellColor = "FFFFFF" END IF %>
strSQL = "Select * From Nyhed Order by NyhedID Desc"
Set rsNyhed = Conn.Execute(strSQL) IF rsNyhed.EOF THEN Conn.Close ELSE WHILE NOT rsNyhed.EOF sql = "select top 1 pic from images where NyhedID = " & rsNyhed("NyhedID") set rsImm = Conn.execute(sql) IF not rsImm.EOF [Brug den her] ELSE [Lad være at bruge den] END IF rsNyhed.Movenext Wend %>
the_bma_man -> jeg har prøvet lidt det som du har skrevet, men kan jeg få dig til at skrive hele koden, da jeg ikke helt kan det til at hænge sammen det som du har skrevet.
strSQL = "Select * From Nyhed Order by NyhedID Desc"
Set rsNyhed = Conn.Execute(strSQL) IF rsNyhed.EOF THEN Conn.Close ELSE WHILE NOT rsNyhed.EOF sql = "select top 1 pic from images where NyhedID = " & rsNyhed("NyhedID") set rsImm = Conn.execute(sql) IF not rsImm.EOF response.write "<img src="""rsImm("pic") & """> Else response.write "Der er ikke noget billede til denne nyhed." END IF rsNyhed.Movenext Wend %>
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.