Avatar billede marcus456 Nybegynder
14. september 2005 - 22:36 Der er 25 kommentarer og
1 løsning

oprette billeddata i access database

At hive data ud af en db via ASP er ikke noget probs.
Men hvordan tilføjer jeg et billede til en database fra en bestemt mappe.
Det er meningen at både de små og store billeder skal befinde sig i db til dette galleri, dvs. når man klikker på det lille vil det skifte over til det selvsamme store.
Avatar billede softspot Forsker
14. september 2005 - 22:43 #1
Du har vel bare tænkt dig at lægge stien til billedet i databasen, ikk'? Hvis du lægger billeders binære data i databasen, tror jeg du vil fortryde det på sigt - det kommer ikke til at performe særlig godt...

Hvis det bare er stien der skal i databasen, så er det vel et spørgsmål om at oprette to felter, et til det store - og et til det lille billede. Dit billede vises så med et link omkring, hvor linket peget på det store og selve img-elementets src peger på det lille billede.

<a href="stortbillede.jpg" target="_blank"><img src="lillebillede.jpg"></a>
Avatar billede marcus456 Nybegynder
14. september 2005 - 22:59 #2
ja..kan se hvad du mener, for det lykkes mig netop at ligge et billede ind i selve databasen og kunne forstille mig det ville funke lidt slow.
Men jeg er ikke helt sikker på om det er fra en sti eller databasen har kopieret selve billedet.
aaaah..(sidder med det her)..jeg skal markere "kæde til en fil" når jeg indsætter

Vil lige se om det fungere, vender tilbage.
Tak for feedback
Avatar billede marcus456 Nybegynder
14. september 2005 - 23:06 #3
hvordan kæder jeg det store billede sammen med det lille, så det bliver et link til det store, når jeg nu trækker hele den første kolone ud på siden(med de små billeder).
Skal det redigeres i databasen?
Eller hvordan ville du lave det spript?
Avatar billede softspot Forsker
14. september 2005 - 23:11 #4
I min tabel ville jeg lave to felter, et til lille billede og et til stort billede.

I mit udtræk ville begge felter så være tilgængelige for hver række (hvis jeg udvælger alle kolonner i tabellen - altså: SELECT * FROM tabelMedBilleder) og så kunne jeg lave linket som jeg beskrev i mit første post... ligeså mange gange der er rækker i resultatet:

do while not rs.EOF
  response.write "<a href=""" & rs("stortbillede") & """ target=""_blank""><img src=""" & rs("lillebillede") & """></a><br>"
 
  rs.movenext
loop

eller noget i den stil.
Avatar billede softspot Forsker
14. september 2005 - 23:12 #5
CRAP! Det skal naturligvis være sådan her:

do while not rs.EOF
  response.write "<a href=""" & rs("stortbillede") & """ target=""_blank""><img src=""" & rs("lillebillede") & """></a><br>"
 
  rs.movenext
loop


NB: Begge billeder ligger som sti'er til et billede som rent fysisk ligger på harddisken i dette kode.
Avatar billede marcus456 Nybegynder
14. september 2005 - 23:45 #6
Takker, men jeg har åbenbart nogen probs med i det heletaget at tilpasse databasen.
Det (min egen opsætning af database) vil åbenbart kun trække texten fra hyperlinket ud :)

Jeg oprettede "hyperlink" som datatype for at intet skulle ligge sig i selve databasen. Men skal jeg lave det om til "OLE-objekt"??
Ja det må det jo være....men er det ikke meningen hyperlinket skal trække dataen ud
Og under primær nøgle står der autonum... skal det laves om også?
Avatar billede softspot Forsker
14. september 2005 - 23:48 #7
Jeg ville umiddelbart bare gemme stien som en almidelig tekst. Du skal jo ikke bruge det til andet end at sætte det sammen med noget andet tekst (der tilfældigvis bliver til et link på siden, men det er irelevant for datatypen i databasen).
Avatar billede softspot Forsker
14. september 2005 - 23:49 #8
Autonumber for primær nøgler er helt fint (de bør jo være entydige, hvilket autonumber hjælper dig med).
Avatar billede marcus456 Nybegynder
15. september 2005 - 00:15 #9
jamn det er jo meningen selve billedet skal trækkes ud.
Er det så en nødvenighed at gemme billedfilen i selve databasen?
Eller er der en anden måde at gøre det på.

Nu får jeg fejl 500 fordi jeg har lavet det om til OLE-objekt
Avatar billede softspot Forsker
15. september 2005 - 00:22 #10
Hmmm... jeg tror lige vi skal have denne her fra begyndelsen. Altså i din database har du en tabel, lad os kalde den billedeTabel, med (mindst) disse to felter:

stiStortBillede [som er en tekst]
stiLilleBillede [som er en tekst]

på din harddisk, f.eks. i /billeder ligger der flg. filer:

lilleBillede.jpg [som er ikonet eller det lille billede]
stortBillede.jpg [som er det store billede]

i din kode laver du et udtræk fra databasen med flg. SQL:

SELECT stiLilleBillede, stiStortBillede
FROM billedeTabel

dette lægges i et recordset som hedder rs

set rs = conn.execute(DenSQLOvenfor)

og dine billeder udskrives således:

do while not rs.EOF
  response.write "<a href=""" & rs("stiStortBillede") & " target=""_blank""><img src=""" & rs("stiLilleBillede") & """></a><br>"

  rs.MoveNext
loop


Data i databasen skal så se således ud (række for række):

stiStortBillede      stiLilleBillede
/billeder/1.jpg      /billeder/tn_1.jpg
/billeder/2.jpg      /billeder/tn_2.jpg


eller hvad dine billedefiler nu hedder (naturligvis) :)
Avatar billede marcus456 Nybegynder
15. september 2005 - 16:24 #11
takker, det lader til det ikke er så enkelt at trække billeddata ud i forhold til text, men det burde det jo rent logisk være.
Jeg vil lige afprøve den kode.
Det som definere den mappe som billederne ligger i skal naturligvis stå i "<a href="/BILLEDMAPPE""
Ikke?

Efter at ha´rodet rundt i andre folks koder er jeg så småt ved at fatte logikken i det.
Men foretrækker min egen enkle som den du gav her jeg fattede bare ikke hvordan jeg skulle definere billedmappe i >>>response.write "<a href=""" & rs("stiStortBillede") & " target=""_blank""><img src=""" & rs("stiLilleBillede") & """></a><br>"<<<

vender tilbage om nogen timer
Avatar billede marcus456 Nybegynder
15. september 2005 - 17:16 #12
jeg får denne fejl>>mangler en operator. i forespørgselsudtrykket "stiStortBillede *"./gal2/default.asp, line 18<<

Dette er koden, hvad har jeg gjordt forkert?

<%

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

strSQL = "SELECT stiLilleBillede, stiStortBillede * FROM billedeTabel"

Set rs = Conn.Execute(strSQL)

do while not rs.EOF
  response.write "<a href=""" & rs("stiStortBillede") & " target=""_blank""><img src=""" & rs("stiLilleBillede") & """></a><br>"

  rs.MoveNext
loop

Conn.Close
Set Conn = Nothing
%>
Avatar billede softspot Forsker
15. september 2005 - 17:18 #13
Ja, umiddelbart er det et komma der mangler lige efter stiStortBillede.
Avatar billede softspot Forsker
15. september 2005 - 17:20 #14
...og så skal du lige have rettet en fejl jeg lavede da jeg postede det kode her:

  response.write "<a href=""" & rs("stiStortBillede") & " target=""_blank""><img src=""" & rs("stiLilleBillede") & """></a><br>"

skal rettes til:

  response.write "<a href=""" & rs("stiStortBillede") & """ target=""_blank""><img src=""" & rs("stiLilleBillede") & """></a><br>"
Avatar billede softspot Forsker
15. september 2005 - 17:21 #15
hmmm... det lader til at forum'et her æder mine anførselstegn, så det kan være jeg slet ikke lavede en fejl i sin tid ;)

  response.write "<a href='" & rs("stiStortBillede") & "' target='_blank'><img src='" & rs("stiLilleBillede") & "'></a><br>"
Avatar billede marcus456 Nybegynder
15. september 2005 - 18:12 #16
YES SIR!!!...der kommer noget på skærmen men det er ikke et billede *G*
..men det er fordi den åbenbart ikke fatter billedet ligger i en undermappe "images"
Men stien i db ER /images/001.jpg - den fatter jeg ikke lige.

OG når jeg klikker på det vælges der udfra "stiLilleBillede"
..dvs jeg skal bytte om på det ikke?
"at spørge dumt" :)

Kunne jo oxo slå op i min programmeringsbog..men nu tager jeg ½ år webprogrammering :) og 2 års MDU.

Du kan godt svare så jeg kan få smidt nogen point afsted.
Men hvorfor vælger den udfra http://localhost/images/g001.jpg
..for "images" ligger i en mappe "gal2" ..den mappe skal jeg måske skrive med selvom db ligger i "gal2"

Bruger man i det heletaget ' ..er det afgørende i ASP/php?..sat i forhold til "
Avatar billede softspot Forsker
15. september 2005 - 18:22 #17
Bare lige nogle hurtige spørgsmål:

1. Hvor siger du dine billeder ligger ifht. localhost?
2. Hvor siger du dit script ligger ifht. localhost?
3. Hvorfor fortæller du databasen at billederne ligger i /images når de rent faktisk ligger i /gal2/images...?

:)
Avatar billede marcus456 Nybegynder
15. september 2005 - 18:23 #18
så funger det... 1000 tak for hjælpen
Avatar billede softspot Forsker
15. september 2005 - 18:24 #19
Hvor din database ligger er underordnet ifht. at referere billederne.
Avatar billede softspot Forsker
15. september 2005 - 18:24 #20
Velbekomme :)
Avatar billede marcus456 Nybegynder
15. september 2005 - 18:36 #21
localhost var bare det link jeg kopierede under egenskaber for at se hvor databasen fik "det manglende billede" fra.
Siger ikke koden ligger i localhost... koden, images og db ligger i mappen "gal2" på min IIS-server
..hovsa..jeg ser nu hvorfor ..jeg skrev / istedet for \ ..for jeg lavede datatype om til hyperlink istedet for at skrive.
Samt havde jeg skrevet de forkerte billeder under forkert kolone :) ..så din kode er skam perfekt.
Men gælder det samme \ også på mapperne på en server, out there?
hmm..finder jegvel ud af :)
Der opstod en 500 fejl på hele severen igår på mit domæne..gad vide om det var min skyld :)
Avatar billede softspot Forsker
15. september 2005 - 18:39 #22
Mon dog... :)

Dine stier skal passe til den server som sitet ligger på. Derfor er det også bedst ikke at lægge sig fast på absolutte stier, da dette kræver ændringer når det lægges på en anden server. Det er dog en lille udfordring til hjernen at finde på en metode som ikke giver nogle problemer overhovedet... :)
Avatar billede softspot Forsker
15. september 2005 - 18:39 #23
Tak for point :)
Avatar billede marcus456 Nybegynder
15. september 2005 - 18:58 #24
Jeg forstår ikke rigtigt at det skulle gøre en forskel på en site "\", det er jo stadig en harddisk jeg ligger filerne på og stadig igennem en db.

når jeg fjerner _blank ..havde jeg nu drømt om at det var muligt at flette billedet(det store) ind i den selvsamme side.
Som på denne side http://www.jausthus.dk/ ..hvis du klikker på "maleri"

Er der en smart måde at gøre det på, kan du gennemskue siden.
Det var det der ledte mig til dette spørgsmål fra starten af.
Avatar billede softspot Forsker
15. september 2005 - 19:44 #25
Det der sker på jausthus.dk er at siden (i princippet) skifter til en anden side, som er sat op til at vise et billede i midten af siden, dvs. hvis du skal gøre det samme, kan du f.eks. lave en ny side, som du kalder med en parameter. Den parameter skal så identificere hvilket billede der skal vises. (Prøv at se hvad der sker med adressen på jausthus.dk når du klikker på et maleri).
Avatar billede marcus456 Nybegynder
15. september 2005 - 20:46 #26
uha... det er ikke lige min baglomme...parametre.
Jo en smule men ....dette kan jeg ikke gennemskue

jeg sad og rodede men en andens kode som netop bruger dette princip, som du snakker om der..men den er ikke til at gennemskue da den bruger helt andre måder eller andre benævnelser at hive data frem på.
Har lavet en extra fil show.asp, hvad kan jeg skrive i den og hvad skal jeg lave om i min default.asp fil.
(jeg ved godt jeg ikke har ansat dig som datamatiker :) )
Men har skam min bog åben også :)
uuh..det skær i kontrasten, jeg kan ik bliver mere hvid og du kan ikke blive mere blå*G*

Koden jeg har rodet med er denne:
<%

    DBPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    DBPath = DBPath & Server.MapPath("db.mdb")    
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open DBPath

if Request.Querystring("strID")="" then
        strID="1"
    else
        strID=Request.Querystring("strID")   
    end if   
   
    strAction1=strID-1   
    strAction2=strID+1
   
    Set rsDetail=Server.CreateObject("ADODB.Recordset")
    Set rsTot=Server.CreateObject("ADODB.Recordset")
    Set rsBestellung=Server.CreateObject("ADODB.Recordset")
    Set rsAnzahl=Server.CreateObject("ADODB.Recordset")
   
rsDetail.Open "SELECT * FROM tblIMAGES where FID="&strID,conn,0,3
    rsTot.Open "SELECT * FROM abfTotal",conn,0,3   
            strTotal=rsTot.Fields("Total")
    rsTot.Close   
   
    if rsDetail.Fields("FID")=strTotal then
        strEnd=true
   
end if   



    strImage="<a href=""gallerist.asp?strID="&rsDetail.Fields("FID")&"""><img src=""images/"&rsDetail.Fields("IMAGE")&"""></a>"   

   
    rsDetail.Close 
    conn.Close
    Set conn = Nothing    %>   
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="345" border="0" cellspacing="0" cellpadding="2" bgcolor="#4682B4">
  <tr>
  <td align="center">   
  <table width="100%" border="0" cellspacing="0" cellpadding="0" bgcolor="#eeeeee">
    <tr><td align="right"><%=strToTImages%></td></tr>
                <tr><td align="center"><%=strImage%><br>&nbsp;</td></tr>
  </table>
  </td>
  </tr>
  <tr><td align="center"><%=strPrev&" | "&strHome&" | "&strNext%></td></tr>
</table>
</body>


</html>

##og udtræk af det store billede:
<%
    DBPath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    DBPath = DBPath & Server.MapPath("db.mdb")    
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open DBPath

    strID=Request.Querystring("strID")
   
    Set rsDetail=Server.CreateObject("ADODB.Recordset")
   
rsDetail.Open "SELECT * FROM tblIMAGES where FID="&strID,conn,0,3    %>   
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<img src="images/<%=rsDetail.Fields("GROSS")%>" alt="<%=rsDetail.Fields("ALT")%>">
<p></a></p><
        strPrev="<a href=""gallery.asp?strID="&strAction1&""" title=""sdfsdf"">
</body>
</html>
<%    rsDetail.Close 
    conn.Close
    Set conn = Nothing %>
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