Avatar billede iggipop Nybegynder
21. juli 2004 - 01:23 Der er 15 kommentarer og
1 løsning

Skal kun skrive ud hvis 2 felter i hver sin tabel er ens

Hej !

Prøver at lave noget der kun skrive nogle billeder ud hvis 2 felter fra hver sin tabel er ens. Tabellerne er testtabel og billeder. Felterne er rsguestbook("id_no") og rsguestbook("id")

Søg efter dette i koden for at finde der hvor jeg tror det skal ind. Felterne i de 2 databaser skal være ens og der kan kun være 1 rsguestbook("id_no") men der kan godt være flere rsguestbook("id")
****************Det er her det skal sættes ind : ****************


Koden :

<% Session.LCID=1030 %>
<%
'if isEmpty(session("UserID")) then
'    Response.Redirect "../../bruger/asp/logadmin.asp?msg=" & Server.URLEncode ("Du skal være logget ind for at se fangstrapporter.")
'end if
%>
<%
'Dimension variables
Dim adoCon             'Holds the Database Connection Object
Dim rsGuestbook        'Holds the recordset for the record to be updated
Dim strSQL            'Holds the SQL query for the database
Dim strsql2
Dim lngRecordNo        'Holds the record number to be updated

'Read in the record number to be updated
lngRecordNo = CLng(Request.QueryString("ID"))

'Create an ADO connection odject
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../db/test.mdb")

'Set an active connection to the Connection object using DSN connection
'adoCon.Open "DSN=guestbook"

'Create an ADO recordset object
Set rsGuestbook = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
'strSQL = "SELECT testtabel.* FROM testtabel WHERE ID_no=" & lngRecordNo
strSQL = "SELECT * FROM testtabel,billeder WHERE ID_no=" & lngRecordNo & "" & " order by id_nr"


'Open the recordset with the SQL query
rsGuestbook.Open strSQL, adoCon
%>
<html>
<head>
<title>View_selected</title>
<link rel="stylesheet" type="text/css" href="../../style.css">
    <meta http-equiv="Cache-Control" content="no-store">
    <meta http-equiv="Pragma" content="no-cache">

</head>
<body bgcolor="#232323" text="black">
<div align="center">
  <center>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="530" id="AutoNumber2">
      <tr>
        <td width="100%" class=head align=center>
             
                <% = rsGuestbook("forfatter") %>'s fangstrapport
             
          </td>
      </tr>
        <tr>
          <td width="100%">
          </td>
        </tr>
    </table>
  </center>
</div>

<div align="center">
  <center>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="530" id="AutoNumber2">
      <tr>
        <td width="100%" align=left class=text1>
                <a href="view_select_bg.asp">
                  Tilbage
                </a>
        </td>
      </tr>
    </table>
  </center>
</div>
<br>
<div align="center">
    <table border="0" cellpadding="0" cellspacing="0" style="border-width:0px; border-collapse: collapse" width="530" id="table2" bordercolor="#000000">
        <tr>
            <td colspan="4" align=center class="head" ><b><% = rsGuestbook("overskrift") %></b></td>
        </tr>
<tr>
            <td colspan="4" align=center class="head">&nbsp; </td>
        </tr>
        <tr>

            <td class="text1" rowspan="9" width="20%" style="border-left: medium none #000000; border-right-style: none; border-right-width: medium; border-top-style: none; border-top-width: medium; border-bottom: medium none #000000">
            <%if len(rsGuestbook("url"))>0 then
     
maksbredde = 150
makshojde = 180
'
'
'Du mangler at ha' komponenten (ImgSize.Check) installeret på serveren Kristian!
'Den bruges til at finde ud af, hvor stort billedet er!
'Måske hedder den noget andet hos din udbyder!?
'
Set objImg = Server.CreateObject("ImgSize.Check")
objImg.FileName = server.mappath(rsGuestbook("url"))
if objImg.Height > makshojde then
    ratio = objImg.Height / makshojde
    newheight = objImg.Height /ratio
    newwidth =  objImg.Width  /ratio
    if newwidth > maksbredde then
        ratio = newwidth / maksbredde
        newheight = newheight /ratio
        newwidth =  newwidth  /ratio
    end if
elseif objImg.Width > maksbredde then
    ratio = objImg.Width / maksbredde
    newheight = objImg.Height /ratio
    newwidth =  objImg.Width  /ratio
    if newheight > makshojde then
        ratio = newheight / makshojde
        newheight = newheight /ratio
        newwidth =  newwidth  /ratio
    end if
else
    newheight = objImg.Height
    newwidth = objImg.Width
end if

      %>

<a href="<%= rsguestbook("url")%>" target=_blank>

<img src="<%= rsguestbook("url")%>" border="0" height="<%= newheight %>" width="<%= newwidth %>" align="top"></a>

<% else %>
<img src="../images/nopix.gif" border="0" align="top">
      <%end if%>

            </td>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">
            &nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">
            Indsendt af</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            :<% = rsGuestbook("forfatter") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">&nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">Dato for fangst</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            :<% = rsGuestbook("fangstmnd") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">&nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">Fangst</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            :<% = rsGuestbook("fangst") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">&nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">Agn</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            :<% = rsGuestbook("agn") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">
            &nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">
            Vægt i kg</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            : <% = rsGuestbook("vaegt") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">
            &nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">
            Kategori</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            : <% = rsGuestbook("metode") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">
            &nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">
            Sted</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            : <% = rsGuestbook("sted") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">
            &nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">
            Oprettet d.</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            : <% = rsGuestbook("dato") %></td>
        </tr>
        <tr>
            <td class="text1" width="4%" style="border-style: none; border-width: medium">
            &nbsp;</td>
            <td class="text1" width="30%" style="border-style: none; border-width: medium">
            Klokken</td>
            <td class="text1" style="border-style: none; border-width: medium" >
            : <% = rsGuestbook("tid") %></td>
        </tr>
       
    </table>
</div>
<br>
<div align="center">
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-bottom-width:0px" width="530" id="table2" bordercolor="#000000">

            <tr>
           

        </tr>
        <tr>
        <%
    '    str = rsguestbook("beretning")
    '    str = replace(str, "f1", "<img src='../html-images/bid.jpg' width='45' height='62'>")
    '    str = replace(str, "F1", "<img src='../html-images/bid.jpg' width='45' height='62'>")
    '    str = replace(str, "f2", "<img src='../html-images/fisk.jpg' width='68' height='65'>")
    '    str = replace(str, "F2", "<img src='../html-images/fisk.jpg' width='68' height='65'>")
    '    str = replace(str, "so1", "<img src='../html-images/lake.jpg' width='81' height='47'>")
    '    str = replace(str, "SO1", "<img src='../html-images/lake.jpg' width='81' height='47'>")
    '    str = replace(str, "linux", "<img src='../html-images/linux.jpg' width='68' height='69'>")
    '    str = replace(str, "LINUX", "<img src='../html-images/linux.jpg' width='68' height='69'>")
    '  str = replace(str, "stang1", "<img src='../html-images/rod.jpg' width='53' height='78'>")
    '    str = replace(str, "STANG1", "<img src='../html-images/rod.jpg' width='53' height='78'>")
    '    str = replace(str, ";)", "<img src='../html-images/yellowsmile.gif'>")
    '    str = replace(str, ":o", "<img src='../html-images/1.gif'>")
    '    str = replace(str, ";-)", "<img src='../html-images/2.gif'>")
    '  str = replace(str, ":D", "<img src='../html-images/3.gif'>")
    '    str = replace(str, ":-)", "<img src='../html-images/4.gif'>")
    '  str = replace(str, ":(", "<img src='../html-images/5.gif'>")
        %>
            <td class="text1" colspan="3" style="border-left-color: #000000; border-left-width: 1px; border-right-color: #000000; border-right-width: 1px; border-top-style: none; border-top-width: medium"><%=rsguestbook("beretning")%>
<br><br>
            </td>
   
        </tr>

    </table>
</div>

<br>
<div align="center">
<table border='0' cellpadding='0' cellspacing='0' style='border-width:0px; border-collapse: collapse' width='530' id='table2' bordercolor='#000000'>    <tr>
        <td class=text1 align=center>
       
<a href='xtra/indtast_billede_tekst.asp?id=<%=lngRecordNo%>'>Upload flere billeder</a>
        </td>
    </tr>
</table>
<br>
<div align="center">
<table border='0' cellpadding='0' cellspacing='0' style='border-width:0px; border-collapse: collapse' width='530' id='table2' bordercolor='#000000'>    <tr>
        <td class=head align=center>

****************Det er her det skal sættes ind : ****************
<%

if rsguestbook.eof then
  response.write "<b>ingen ekstra billeder</b>"
else
  response.write "<b>Ekstra billeder</b>"
  dim i
  i = 0
%>
       
        </td>
    </tr>
</table>

<table border='0' cellpadding='0' cellspacing='4' style='border-width:0px; border-collapse: collapse' width='530' id='table2' bordercolor='#000000'>
<tr>
<%
    'Loop through the recordset
    Do While not rsGuestbook.EOF
%>
<td class=text1>
  <a href="<%= rsguestbook("sti")%>" target=_blank>
  <img src="<%= rsguestbook("sti")%>" border="0" height="<%= newheight %>" width="<%= newwidth %>" align="top">
  </a>
  <%= rsguestbook("tekst")%>
  <%
  If i = 3 then
    response.write "</tr>"
    response.write "<tr>"
    i = 0
  Else
    i= i + 1
  End If

    'Move to the next record in the recordset
    rsGuestbook.MoveNext

Loop
End if

'response.write "</tr>"

%>
</table>

</div>

</body>
</html>
</font><%
'Reset server objects
rsGuestbook.Close
Set rsGuestbook = Nothing
Set adoCon = Nothing
%>
Avatar billede hiks Nybegynder
21. juli 2004 - 08:45 #1
Er ik helt sikker på hvad du fisker efter... :) Men det lyder som noget der kan løses med et inner join. Kig i "FROM" delen af sql og ret til der hvor der står "ON" således at den attribut fra testtabellen står lig med den fra billeder ligeledes attribut.

SELECT * FROM testtabel INNER JOIN billeder on testtabel.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;

/hiks
Avatar billede iggipop Nybegynder
21. juli 2004 - 10:14 #2
Microsoft VBScript compilation error '800a03fd'

Expected 'Case'

/fangstrapporter/html/test_view_selected.asp, line 33

SELECT * FROM testtabel INNER JOIN billeder on testtabel.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;
-------^
Avatar billede iggipop Nybegynder
21. juli 2004 - 10:17 #3
hmm ---^ er under *

Det er fordi den tabel der hedder billeder indeholder sti'er til flere billeder og id_nr har samme værdi som id_no i testtabel. Den skal derfor tage alle poster i testabel og derefter tage alle poster i billeder hvor billeder.id_nr = testtabel.id_no
Avatar billede hiks Nybegynder
21. juli 2004 - 10:49 #4
øh den er jeg ik helt med på. Har du sat den ind på din tidligere sql sætnings plads?

strSQL = "SELECT * FROM testtabel INNER JOIN billeder on testtabel.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;"

/hiks
Avatar billede iggipop Nybegynder
21. juli 2004 - 10:55 #5
Undskyld .. damn .. latterligt....min fejl....skulle vist have taget en time mere :D
Men jeg får en anden fejl nu:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access Driver] Type mismatch in expression.
/fangstrapporter/html/test_view_selected.asp, line 37

og linie 37 er

strSQL = "SELECT * FROM testtabel INNER JOIN billeder on testtabel.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;"
Avatar billede hiks Nybegynder
21. juli 2004 - 11:05 #6
er id_no og id samme type? prøv evt at paste det ind i access og prøv det der som en forespørgsel nogen gange får man en bedre fejl besked der.

/hiks
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:06 #7
Hmm..betyder det noget at der ikke nødvendigvis er en billeder.id til en testtabel.id_no ? Altså der kan være 0, 1 eller mange billeder.id til en testtabel.id_no ?
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:07 #8
Nej ik sammen type
id_no er autonummerering
id er et tekstfelt
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:13 #9
nu prøvede jeg at ændre id i billeder-tabellen til tal i stedet for tekst.
Så virker det for de testtabel.id_no hvor der findes en billeder.id

For dem hvor der ikke er en billeder.id får jeg :

ADODB.Field error '80020009'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/fangstrapporter/html/test_view_selected.asp, line 0
Avatar billede hiks Nybegynder
21. juli 2004 - 11:15 #10
derfor - så kan man ik lave et JOIN i så fald... Hvis der kan være ingen billeder eller mange billeder tilknyttet skal du lave en outer join.

dvs:

SELECT * FROM testtabel LEFT OUTER JOIN billeder on testtabel.id_no = billeder.id WHERE ID_no=" & lngRecordNo & " ORDER BY id_nr;

Vel og mærke hvis data i testtabel er det vigtigste at få vist. Så skal du sæføli teste på om de felter du forsøger at hente ud fra billede tabellen har null værdier. Hvis de har det så har du ikke tilkyttet nogle billeder

/hiks
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:22 #11
Ja så virker det næsten.

Data i testtabel skal ALTID vises. Så er det kun hvis der er noget i billeder at det skal vises.

2 små problemer tilbage

1.
Det sidste du skriver med null-værdi er jeg ik helt med på.
Hvis der er en billeder.id er resten af poster der udfyldt. Er det hvad du tænker på eller ?

2.
Når jeg vælger en testtabel.id_no hvor der ikke er en billeder.id til så får jeg alligel en hvid kasse med et rødt kryds i. Som om billedet mangler.. Hvordan undgår jeg det ? Jeg skal vel teste på et eller andet her :

<%

if rsguestbook.eof then
  response.write "<b>ingen ekstra billeder</b>"
else
  response.write "<b>Ekstra billeder</b>"
  dim i
  i = 0
%>
       
        </td>
    </tr>
</table>

<table border='0' cellpadding='0' cellspacing='4' style='border-width:0px; border-collapse: collapse' width='530' id='table2' bordercolor='#000000'>
<tr>
<%
    'Loop through the recordset
    Do While not rsGuestbook.EOF
%>
<td class=text1>
  <a href="<%= rsguestbook("sti")%>" target=_blank>
  <img src="<%= rsguestbook("sti")%>" border="0" height="<%= newheight %>" width="<%= newwidth %>" align="top">
  </a>
  <%= rsguestbook("tekst")%>
  <%
  If i = 3 then
    response.write "</tr>"
    response.write "<tr>"
    i = 0
  Else
    i= i + 1
  End If

    'Move to the next record in the recordset
    rsGuestbook.MoveNext

Loop
End if

'response.write "</tr>"

%>
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:22 #12
Vil gerne afsætte mine sidste point hvis du gider hjælpe mere :D
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:35 #13
Smid et svar....har fundet ud af det !
Avatar billede hiks Nybegynder
21. juli 2004 - 11:36 #14
svar - blev det ok?

/hiks
Avatar billede iggipop Nybegynder
21. juli 2004 - 11:43 #15
Ja tak...det blev ski' godt :D
http://www.darkzone.dk/fangstrapporter/html/test_view_select_bg.asp

de 2 øverste har ekstra billeder, resten har ik
Avatar billede hiks Nybegynder
21. juli 2004 - 12:50 #16
fino - takker for p.

/hiks
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