Avatar billede fauer Nybegynder
30. maj 2005 - 16:22 Der er 21 kommentarer og
1 løsning

Hvordan sammenholder jeg to tabellers idnr?

Jeg har en db med 2 tabeller FFtabel og ForhandlerTabel.
FFtabel
ID og ForhandlerID

ForhandlerTabel
ID og LogoID

Jeg sender et FFtabel ID over url til nedstående, og vil gerne have en sammenligning af FFtabel ForhadlerID og ForhandlerTabel ID, så jeg få logoID (et billede) vist.

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("database.mdb")
Conn.Open DSN
           
strSQL = "Select * From FFtabel where ID=" & request.querystring("ID")
Set rs = Conn.Execute(strSQL)

Et eller andet med der hvor FFtabel ForhandlerID = ForhandlerTabel ID, vis indholdet af ForhandlerTabel LogoID.

strVisBillede ="<img src='../../grafik/gif/" & rs("LogoID") & "'>"
Response.Write strVisBillede
%>

Er der nogen der kan fortælle mig hvordan jeg gør det??

Mvh fauer
Avatar billede fennec Nybegynder
30. maj 2005 - 16:31 #1
Du skal bare joine tabellerne:

strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.ffID=FFtabel.ID where FFtabel.ID=" & request.querystring("ID")

Du har ikke angivet ForhandlerTabel og FFtabel relatere til hinanden. Der må være et tal i enten ForhandlerTabel eller FFtabel som relatere til den anden tabel...

I mit eks har jeg brugt ffID (eksistere sikkert ikke i din tabel) til at relatere til FFtabel.ID
Avatar billede fauer Nybegynder
30. maj 2005 - 16:44 #2
ForhandlerTabel.IDforhandler(primærnøgle) er relateret til FFtabel.ForhandlerID.
Avatar billede fauer Nybegynder
30. maj 2005 - 17:14 #3
strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.IDforhandler=FFtabel.ID where FFtabel.ID=" & request.querystring("ID")

Det er ikke helt rigtigt....
for nu bliver FFtabel.ID sammenlingnet med FFtabel.ForhandlerID, og der hvor der er match vises billedet dvs. kun ved 3 produkter. ForhandlerTabel indeholder 3 billeder.
FFtabel indeholder mange forskellige produkter/ID, og for hvert produkt/ID skal der vises om det er billede nr. 1,2 eller 3.

Kan du gennemskue det?

Mvh fauer
Avatar billede fauer Nybegynder
31. maj 2005 - 09:08 #4
vis mig ForhandlerTabel.LogoID der hvor FFtabel.ID=" & request.querystring("ID")'s
FFtabel.ForhandlerID relaterer til ForhandlerTabel.IDforhandler.

Hvordan gør jeg det??
Avatar billede fauer Nybegynder
31. maj 2005 - 09:35 #5
Jeg bliver ved med at få denne fejlmeddelse:

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'rs'
/asp/forhandler.asp, line 30
Avatar billede ldanielsen Nybegynder
31. maj 2005 - 10:48 #6
Det ser ud til at du vil joine på

ForhandlerTabel.IDforhandler = FFtabel.ForhandlerID

Det er i hvert fald det du siger 30/5 16:44:13. Men 30/5 17:14:53 skriver du at du prøver at bruge:

strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.IDforhandler=FFtabel.ID where FFtabel.ID=" & request.querystring("ID")

- hvilket er et join på ForhandlerTabel.IDforhandler = FFtabel.ID. Er det ikke en fejl?

Prøv:
strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.IDforhandler = FFtabel.ForhandlerID where FFtabel.ID = " & request.querystring("ID")

Nu skal du naturligvis sørge for at der er noget i request.querystring("ID"), ellers vil der komme en fejl ...
Avatar billede fauer Nybegynder
31. maj 2005 - 11:05 #7
strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.IDforhandler = FFtabel.ForhandlerID where FFtabel.ID = " & request.querystring("ID")
strVisBillede ="<img src='../grafik/gif/" & rs("LogoID") & "'>"
Response.Write strVisBillede

Jeg får følgende fejlmeddelse... er det ikke en fejl på om det er tal eller tekst der er i db?.. LogoID er tekst idb.

Microsoft VBScript runtime error '800a000d'
Type mismatch: 'rs'
/asp/forhandler.asp, line 32
Avatar billede busschou Praktikant
31. maj 2005 - 12:42 #8
Det er jo fordi du mangler din
Set rs = Conn.Execute(strSQL)
:o)
Avatar billede busschou Praktikant
31. maj 2005 - 12:44 #9
id = CInt(request.querystring("ID"))
strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.IDforhandler = FFtabel.ForhandlerID where FFtabel.ID = " & id
Set rs = Conn.Execute(strSQL)
if not rs.eof then
strVisBillede ="<img src='../grafik/gif/" & rs("LogoID") & "'>"
Response.Write strVisBillede
else
response.write "Det angivne id findes ikke i databasen"
end if
Avatar billede busschou Praktikant
31. maj 2005 - 12:46 #10
Hedder det i øvrigt ikke ForhandlerID og ikke IDforhandler?
--
id = CInt(request.querystring("ID"))
strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.ForhandlerID = FFtabel.ForhandlerID where FFtabel.ID = " & id
Set rs = Conn.Execute(strSQL)
if not rs.eof then
strVisBillede ="<img src='../grafik/gif/" & rs("LogoID") & "'>"
Response.Write strVisBillede
else
response.write "Det angivne id findes ikke i databasen"
end if
Avatar billede busschou Praktikant
31. maj 2005 - 12:58 #11
en gang til ...
Det du ønsker er LogoID , derfor skal du finde dem hvor ForhandlerTabel.ID = FFtabel.ForhandlerID.. sådan her
----
id = CInt(request.querystring("ID"))
strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.ID = FFtabel.ForhandlerID where FFtabel.ID = " & id
Set rs = Conn.Execute(strSQL)
if not rs.eof then
strVisBillede ="<img src='../grafik/gif/" & rs("LogoID") & "'>"
Response.Write strVisBillede
else
response.write "Det angivne id findes ikke i databasen"
end if
---
Om det så er "left" "Right" eller "inner" join du skal benytte.. det er jeg ikke god nok til joins til at kunne sige desværre
Avatar billede fauer Nybegynder
31. maj 2005 - 15:09 #12
OK jeg prøver
Avatar billede fauer Nybegynder
31. maj 2005 - 15:27 #13
Jeg får følgende fejlmeddelse uanset "left" "Right" eller "inner" join.

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/asp/forhandler.asp, line 33

ForhandlerTabel.IDforhandler er det du skriver som ForhandlerTabel.ID.

line 33 er "Set rs = Conn.Execute(strSQL)"
Avatar billede fauer Nybegynder
31. maj 2005 - 15:29 #14
Og der er masser af indhold i begge tabeller.
Avatar billede fauer Nybegynder
31. maj 2005 - 15:42 #15
Måske har det noget at gøre med den måde jeg sender ID??

strVisDKnavn ="En lang smørre som bliver vist korrekt"   

strVisDnavn = "<a href=""#"" onClick=""multilink('billede.asp?ID=" & rs("ID") & "', 'forhandler.asp?ID=" & rs("ID") & "');"">" & strVisDKnavn & "</a>"

Response.Write strVisDnavn
Avatar billede busschou Praktikant
31. maj 2005 - 16:25 #16
Ja altså idanielsen skrev
ForhandlerTabel.IDforhandler
Du skrev selv i spørgsmålet som om den tabel der hedder Forhandler har et ID felt
ergo hedder det
ForhandlerTabel.ID
Når du får fejl i linje 33 så er det fordi der er fejl i din strSQL som står højere oppe
prøv inden den linje at lave følgende
response.write(strSQL)
og send udskriften herind
Avatar billede fauer Nybegynder
31. maj 2005 - 17:05 #17
ForhandlerTabel har et ID feldt (primær nøgle) som hedder IDforhandler... sorry hvis jeg forklarer mig dårligt, men jeg er ikke så prof endnu.

Og jeg har nu udkommenteret den del som jeg ikke kan få til at virke.


Hele dokumentet ser sådan ud nu:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Adobe GoLive">
        <link rel="stylesheet" type="text/css" href="../style.css">
        <title>Forhandler</title>
    </head>

<body leftmargin="0" topmargin="0" background="../grafik/jpg/baggrundHoejreH.jpg">
        <table width="140" border="0" cellspacing="0" cellpadding="0" align="left">
            <tr>
                <td class="rubrik">
                    Køb planten hos:
                    <br>
                    <br>
                </td>
            </tr>
            <tr>
                <td>
               
            <%
           
            Set Conn = Server.CreateObject("ADODB.Connection")
            DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
            DSN = DSN & "DBQ=" & Server.MapPath("../db/FFdatabase.mdb")
            Conn.Open DSN
           
            strSQL = "Select * From FFtabel where ForhandlerID=" & request.querystring("ID")
            Set rs = Conn.Execute(strSQL)
           
            Response.Write rs("ForhandlerID")
           
            'id = CInt(request.querystring("ID"))
            'strSQL = "Select * From FFtabel Right join ForhandlerTabel on ForhandlerTabel.IDforhandler = FFtabel.ForhandlerID where FFtabel.ID = " & id
            'Set rs = Conn.Execute(strSQL)
            'if not rs.eof then
            'strVisBillede ="<img src='../grafik/gif/" & rs("LogoID") & "'>"
            'Response.Write strVisBillede
            'else
            'response.write "Det angivne id findes ikke i databasen"
            'end if
           
            'strSQL = "Select * From FFtabel left join ForhandlerTabel on ForhandlerTabel.IDforhandler = FFtabel.ForhandlerID where FFtabel.ID = " & request.querystring("ID")
            'strVisBillede ="<img src='../grafik/gif/" & rs("LogoID") & "'>"
            'Response.Write strVisBillede
           
            %>
           
                </td>
            </tr>
        </table>
</body>

</html>
Avatar billede fauer Nybegynder
31. maj 2005 - 17:10 #18
Jeg vender tilbage senere i aften, tak for nu.

Mvh fauer
Avatar billede fauer Nybegynder
01. juni 2005 - 09:57 #19
så er jeg tilbage!!!

Og nu er jeg ved at være virkelig presset, for jeg skal aflevere projekt på mandag.

mvh fauer
Avatar billede fauer Nybegynder
03. juni 2005 - 15:46 #20
Jeg har fundet en anden måde at løse det på...
Så send mig et svar så jeg kan give dig points!

Mvh fauer
Avatar billede busschou Praktikant
03. juni 2005 - 16:41 #21
oki doki da... håber du nåede det ?
Avatar billede busschou Praktikant
03. juni 2005 - 16:43 #22
svar
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