Avatar billede simsen Mester
26. juni 2003 - 23:11 Der er 9 kommentarer og
1 løsning

Hente 2 forskellige billeder

Jeg har oprettet en database med felterne ID - File Name - File Data

Jeg lægger nu billeder ind:
              ID    File Name  File Data

Billede 1:    01    simsen      bla bla
Billede 2:    02    th_simsen  bla bla

Det skal siges at billede 2 er en thumbnail billede af billede 1.

Jeg henter nu alle data (undtaget file data altså selve billedet) om hver enkelt reccord i databasen med nedenviste fil:

<!-- #include file="protect.inc" -->
<%
  ' -- show.asp --
  ' Generates a list of uploaded files
 
  Response.Buffer = True
 
  ' Connection String
  Dim connStr
  Dim taeller
      connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
        Server.MapPath("blomst.mdb")
%>
<html>
<head>
<!-- Minus AutoDato -->
<title>Brugerside</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<LINK HREF="../../Stylesheets/Stylesheet.css" REL="stylesheet" TYPE="text/css">
</head>

<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" text="white" link="white" vlink="#6495ed" alink="aqua">



  <center>
    <H1><B> lalitha</B></H1>
    </center>

    <center><IMG SRC="../../Billeder/AdskilTop.gif" BORDER="0" WIDTH="450" HEIGHT="38" ALIGN="bottom" ALT=""></center><br>

<table width="600" border="1" align="center">
<%
  ' Recordset Object
  Dim rs
      Set rs = Server.CreateObject("ADODB.Recordset")
     
      ' opening connection
      rs.Open "select [ID],[File Name],[File Size],[Content Type]," & _
        "[Kategori] from Files Where [File Name] Like 'th_%' And [Kategori] Like 'th-1Med'" & _
        "order by [Kategori] asc", connStr, 3, 4

      If Not rs.EOF Then
        Response.Write "<tr>"
        taeller=0
   
        While Not rs.EOF
            taeller=taeller+1
            taellernavn=taellernavn+1
            Response.Write "<td align=""center"">"
            Response.Write "<a href=""file.asp?ID=" & rs("ID") & """>"
            Response.Write "<img src=""file.asp?ID=" & rs("ID") & """>" & "<br>"
            Response.Write "</a>"

            If taeller=5 Then
              taeller = 0
              Response.Write "</td></tr></table><table width=""600"" border=""1"" align=""center""> <tr><td  align=""center"">"
            End If

            rs.MoveNext
        Wend
            Response.Write "</td></tr>"
      Else
        Response.Write "No Record Found"
    End If
     
      rs.Close
      Set rs = Nothing
%>
  </table>

</body>
</html>

Inde i ovennævnte fil henter jeg så selve billedet (File Data med nedennævnte fil)

<%
  ' -- file.asp --
  ' Retrieves binary files from the database
 
  Response.Buffer = True
 
  ' ID of the file to retrieve
  Dim ID
      ID = Request("ID")
     

 
  ' Connection String
  Dim connStr
      connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
        Server.MapPath("blomst.mdb")
 
  ' Recordset Object
  Dim rs
      Set rs = Server.CreateObject("ADODB.Recordset")
     
      ' opening connection
      rs.Open "select [File Data],[Content Type] from Files where ID = " & _
        ID, connStr, 2, 4

      If Not rs.EOF Then
        Response.ContentType = rs("Content Type")
        Response.BinaryWrite rs("File Data")
      End If
     
     
      rs.Close
      Set rs = Nothing
%>

Ovenståen virker perfekt - var det ikke liiiiiiige for det lille problem - at jeg vil ikke have, når jeg trykker på linket, at den skal hente thumbnailen frem altså th_simsen men derimod billedet simsen frem.

Nogen der kan forklare mig, hvordan jeg får den kringlet?

simsen :-)
Avatar billede eagleeye Praktikant
26. juni 2003 - 23:17 #1
Fejlen kommer fordi den hendter alle filnanve ud med th_ inanvet og laver et link til en fil med id på billedet som skal vises og det jo id på det lille billede.

Response.Write "<a href=""file.asp?ID=" & rs("ID") & """>"
Response.Write "<img src=""file.asp?ID=" & rs("ID") & """>" & "<br>"


Så hvis du vil havde vist det støre billede må du lave en ny kolonne i din database med id-tallet for det store billede og udskrive det i stedet for ID på det lille:

              ID    File Name  File Data  STORTID

Billede 1:    01    simsen      bla bla      1
Billede 2:    02    th_simsen  bla bla        1


Så bliver de to linje sådan her:

Response.Write "<a href=""file.asp?ID=" & rs("stortID") & """>"
Response.Write "<img src=""file.asp?ID=" & rs("ID") & """>" & "<br>"
Avatar billede simsen Mester
26. juni 2003 - 23:33 #2
Hejsa eagleeye

Har prøvet ovennævnte og det virker ikke. Men er det ikke også logisk - den kan jo kun hente et billede ind af gangen og nu prøver jeg at at hente 2 ind på én gang?

simsen :-)
Avatar billede eagleeye Praktikant
26. juni 2003 - 23:36 #3
Du skal også rette denne linje:

rs.Open "select [ID],[File Name],[File Size],[Content Type]," & _

Til dette så den hendter stortID ud.
rs.Open "select [ID],[stortID],[File Name],[File Size],[Content Type]," & _
Avatar billede eagleeye Praktikant
26. juni 2003 - 23:37 #4
Du skal havde dette link:
            Response.Write "<a href=""file.asp?ID=" & rs("ID") & """>"
            Response.Write "<img src=""file.asp?ID=" & rs("ID") & """>" & "<br>"

Til at linke til ID på det store billede med stadig vise det lille.:
            Response.Write "<a href=""file.asp?ID=" & rs("stortID") & """>"
            Response.Write "<img src=""file.asp?ID=" & rs("ID") & """>" & "<br>"
Avatar billede simsen Mester
26. juni 2003 - 23:40 #5
Jeg har selv en idé - men ved ikke hvordan jeg skal få det ind i denne streng

Response.Write "<a href=""file.asp?stortID=" & rs("stortID") & """>"

Idéen går på et eller andet med at bruge File Name og så trække de 3 første karakterer fra istedet

simsen :-)
Avatar billede simsen Mester
26. juni 2003 - 23:44 #6
Jeg havde husket at få stortID - men stadig det virker ikke - og det er jo fordi den jo bliver forvirret over at i databasen er der to records med storID
Avatar billede eagleeye Praktikant
26. juni 2003 - 23:46 #7
arh ja ok, men så skriv 0 i stortID ved de filer som er de store:

              ID    File Name  File Data  STORTID

Billede 1:    01    simsen      bla bla      0
Billede 2:    02    th_simsen  bla bla      1
Avatar billede simsen Mester
27. juni 2003 - 00:04 #8
Virker heller ikke :-(
Avatar billede eagleeye Praktikant
27. juni 2003 - 00:07 #9
Står der 01 eller 1 i ID??
Du skal skrive det som der står i ID for billede 2 i STORTID i billede 1 rækken.
Avatar billede simsen Mester
27. juni 2003 - 00:16 #10
Netop det der var problemet - der stod 1 i stortID og 01 i ID - takker mange gange :-)
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