Avatar billede brave Nybegynder
04. marts 2004 - 20:18 Der 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.


<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database/database.mdb")
Conn.Open DSN

strSQL = "Select * From Nyhed Order by NyhedID Desc"

Set rs = Conn.Execute(strSQL)

IF RS.EOF THEN
Conn.Close
  ELSE
      WHILE NOT RS.EOF
      IF CellColor = "FFFFFF" THEN
        CellColor = "C0C0C0"
      ELSE
        CellColor = "FFFFFF"
      END IF
      %>

Håber der er en der hjælpe.
Avatar billede ellebaek Nybegynder
04. marts 2004 - 21:14 #1
<%

Set Conn = Server.CreateObject("ADODB.Connection")
set ImConn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database/database.mdb")
Conn.Open DSN
ImConn.open DSN

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.
Avatar billede brave Nybegynder
04. marts 2004 - 21:37 #2
Nu har prøvet at sætte det ind men jeg får denne fejl :

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Cannot group on fields selected with '*'.
Avatar billede ellebaek Nybegynder
04. marts 2004 - 21:47 #3
ok...

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"
Avatar billede brave Nybegynder
04. marts 2004 - 21:54 #4
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
      %>
Avatar billede ellebaek Nybegynder
04. marts 2004 - 22:40 #5
det er godt nok mystisk...

Jeg har ikke set den fejl før...
Avatar billede brave Nybegynder
04. marts 2004 - 22:46 #6
Kan det gøres på andre måder ?
Avatar billede the_bma_man Nybegynder
05. marts 2004 - 00:28 #7
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database/database.mdb")
Conn.Open DSN

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
      %>
Avatar billede brave Nybegynder
05. marts 2004 - 21:16 #8
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.
Avatar billede ellebaek Nybegynder
05. marts 2004 - 22:25 #9
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database/database.mdb")
Conn.Open DSN

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
      %>
Avatar billede brave Nybegynder
05. marts 2004 - 23:33 #10
Hejsa

Jeg har fået det til at virke, jeg har delt pointne mellem Jer. Tusind tak for hjælpen.
Avatar billede the_bma_man Nybegynder
05. marts 2004 - 23:40 #11
Velbekomme.
Avatar billede ellebaek Nybegynder
05. marts 2004 - 23:42 #12
Velbekomme..
..Ellebæk!
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