Avatar billede nazty Nybegynder
22. maj 2007 - 12:23 Der er 9 kommentarer og
1 løsning

Udtræk kun hvis der er et billede

Hej

Jeg har en access database med en masse produkter i. Mit script skal kun udtrække produkterne hvis der er et billede dertil. Der står ingenting om billeder i databasen, og det skal der heller ikke. Den skal gå ind i mappen med billeder

"../../../log/unique/img"

og se om der er et billede med produktets nr, som også kaldes nr i databasen.
Det jeg søger er et script som går ind og tjekker om der er et billede i mappen, med navnet 'nr'.jpg. Hvis ikke der er det, skal den ikke trække produktet ud af databasen. Den skal kun trække de produkter ud, som har et billede i mappen.

Håber i forstår hvad jeg mener!?
Avatar billede loukas Mester
22. maj 2007 - 12:37 #1
Her et lille tænkt eksempel.

intVareNr = "1234.jpg" 'varenr/billednr fra DB
strBilledMappe = "c:\webserver\dinside\billeder\" 'sti til placering af billederne

Set fs = CreateObject("Scripting.FileSystemObject")
If (fs.FileExists (""&strBilledMappe &""&intVareNr &"") = True) Then

Response.Write "Her viser jeg min vare med billede"

End if
Avatar billede nazty Nybegynder
22. maj 2007 - 13:28 #2
Umiddelbart ser det ud til at virke

Der er bare opstået et nyt problem.. har nok bare sat der ind det forkerte sted:
Jeg har paging på min side.. Der er ca. billeder til 30 produkter ud af  250. Den viser 25 produkter på hver side. Dvs. der er 10 sider. Det er der selvom den kun skal vise de 30 produkter som der er billede til.. Der er nogen sider hver der ikke bliver vist produkter, og andre hvor der bliver vist.. Hvordan løser jeg det?
Avatar billede nazty Nybegynder
25. maj 2007 - 21:22 #3
Ingen forslag?
Avatar billede w13 Novice
27. maj 2007 - 01:24 #4
Jeg er ikke helt med på dit problem, er jeg bange for.
Avatar billede w13 Novice
27. maj 2007 - 01:29 #5
Ah, nu gør jeg vist. Umiddelbart vil jeg sige, at du skal oprette et true/false-felt i din database, som indeholder, om der findes billede eller ej, da det vist skal bruges for at regne paging ordentligt ud. Evt. kan du programmere en løkke som bruger Loukas' kode på alle produkter og opdaterer feltet i databasen.

Men hvorfor har du produkter, som ikke skal vises, hvis der ikke er et billede?
Avatar billede nazty Nybegynder
04. juni 2007 - 17:12 #6
1. Der kan ikke sættes noget ind i databasen da der bliver opdateret hver dag fra en attain database hvori der ikke kan/skal/må stå noget om billeder.

2. Det har kunden bedt om :)
Avatar billede w13 Novice
04. juni 2007 - 17:23 #7
Ok. Når du så bruger paging, så går jeg jo ud fra, du har nogle variabler, der fortæller noget om, hvor mange poster der må blive vist på siden, hvor mange poster der er vist indtil videre, osv.
Så må du vel bare trække 1 fra sidstnævnte variabel, hvis fileexists = false.

Skriv evt. din kode her, hvis jeg skal hjælpe med rettelsen.
Avatar billede nazty Nybegynder
04. juni 2007 - 19:16 #8
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <meta name="keywords" content="keyword"/>
    <meta name="description" content="tekst"/>
    <meta name="generator" content="Adobe GoLive"/>
    <link href="../../css/basic.css" type="text/css" rel="stylesheet"/>
    <title>Holden Unique</title>
        <script language="JavaScript">
        <!--
        function MM_openBrWindow(theURL,winName,features) { //v2.0
        window.open(theURL,winName,features);
        }
        //-->
        </script>
</head>

<body background="../../img/site/bg_site.gif" bgproperties="fixed" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
<div align="left">
<div style="position:absolute;top:10px;left:0px;width:670px;height:689px;-adbe-c:c">
<div align="left">
<h1>Produkter<br/>
</h1>
</div>
<div align="center">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="center">
<h3 align="left"><font color="black">Sorter efter:</font><br/>
<font color="black">»</font><font color="#eeeeee"> <a href="site_produkter.asp">Alle grupper</a><a href="login/site/admin_del_user.asp" target="_parent"> </a></font><font color="#bbbbbb">| </font><font color="#eeeeee"><a href="site_produkter.asp?gruppe=bonsai">Form klippede planter/Bonsai</a></font><font color="#eeeeee"><a href="site_produkter.asp?vare_gruppe=krukker"> </a></font><font color="black">«</font></h3>
</div>
</td>
</tr>
</table>
<br/>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="1">
<td bgcolor="#e7e7e7" height="1"></td>
</tr>
</table>
<br/>
<font size="3"><strong>
    <%
    '-----------------------------------------------------------------
    '--------DATABASE ACCESS------------------------------------------
    '-----------------------------------------------------------------
    gruppe = Request.Querystring("gruppe")
    '//// Ingen gruppe
    if gruppe = "" then
   
    'Åbner forbindelse
    Set db = Server.CreateObject("ADODB.RecordSet")
    SQL = ("SELECT * FROM lager WHERE lager>'0' ORDER BY beskrivelse")
    JET = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("../../../log/db.mdb")
    db.Open SQL, JET, 1
   
    else
    'Åbner forbindelse
    Set db = Server.CreateObject("ADODB.RecordSet")
    SQL = ("SELECT * FROM lager WHERE lager>'0' AND placering = '" & gruppe & "' ORDER BY beskrivelse")
    JET = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("../../../log/db.mdb")
    db.Open SQL, JET, 1
   
    end if
    '-----------------------------------------------------------------
    '--------DATABASE ACCESS END--------------------------------------
    '-----------------------------------------------------------------
    %>
    <%
   
    Do While Not db.EOF
   
    id = db("id") + 2152
    beskrivelse = db("beskrivelse")
    beskrivelse2 = db("beskrivelse2")
    vekst = db("vekst")
    lov = db("lov")
    blomst = db("blomst")
    frugt = db("frugt")
    alder = db("alder")
    str = db("str")
    pris = db("pris")
    nr = db("nr")
    placering = db("placering")
   
    'Henter kun hvis der er billede
    intVareNr = nr & ".jpg" 'varenr/billednr fra DB
    strBilledMappe = Request.ServerVariables("APPL_PHYSICAL_PATH")& "log\unique\img\" 'sti til placering af billederne
   
    Set fs = CreateObject("Scripting.FileSystemObject")
    If (fs.FileExists (""&strBilledMappe &""&intVareNr &"") = True) Then
   
    %>
</strong></font><br/>
<font size="3"><strong>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="517">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="517">
<h2>
    <%=beskrivelse%> <%' if beskrivelse2 <> "" then
    'Response.Write "(" & beskrivelse2 & ")"
    'end if
    %>
</h2>
</td>
</tr>
<tr>
<td width="517">
<p><i>Vare nr: <%=id%></i></p>
</td>
</tr>
<tr>
<td width="517">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="75">
<p>Alder:</p>
</td>
<td width="184">
<p><% if alder <> "" then
Response.Write alder
end if %></p>
</td>
<td width="75">
<p>Størrelse:</p>
</td>
<td width="183">
<p><% if str <> "" then
Response.Write str
end if %></p>
</td>
</tr>
<tr>
<td width="75">
<p><% if Session("login") = "kunde" or Session("login") = "admin" then
if pris <> "" then
Response.Write "Pris:"
end if
end if%><br/>
</p>
</td>
<td width="184">
<p><strong><% if Session("login") = "kunde" or Session("login") = "admin" then
if pris <> "" then
Response.Write pris
end if
end if %></strong></p>
</td>
<td width="75">
<p><% if Session("login") = "admin" then
if nr <> "" then
Response.Write "Stregkode:"
end if
end if%></p>
</td>
<td width="183">
<p><% if Session("login") = "admin" then
if nr <> "" then
Response.Write nr
end if
end if %></p>
</td>
</tr>
<tr>
<td width="75"><br/>
</td>
<td width="184"></td>
<td width="75"></td>
<td width="183"></td>
</tr>
<tr>
<td width="75"></td>
<td width="184"></td>
<td width="75"></td>
<td width="183"></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width="150">
<div align="right">
<table width="100" border="0" cellspacing="0" cellpadding="0">
<tr height="19">
<td height="19"></td>
</tr>
<tr>
<td>
<table width="136" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="right">
    <%
    folder = "../../../log/unique/img/"
    first = nr & ".jpg"
    %>
</div>
<p><a title="Klik for printer venlig udgave" href="java script:MM_openBrWindow('site_produkter_img.asp?id=<%=id%>','','status=yes,width=671,height=751')"><img id="<%=nr%>" src="thumbnail.asp?FileName=<%=first%>&Width=142" name="<%=nr%>" border="1"/></a></p>
</td>
</tr>
<tr>
<td>
<div align="right">
<p>
    <%
    count=0
    set fs=Server.CreateObject("Scripting.FileSystemObject")
    set f=fs.GetFolder(server.mappath(folder))
    for each file in f.files
    name = file.name
    if lcase(left(name,13)) = nr and lcase(right(name,3)) = "jpg"  then
    if count = "" then
    first = name
    end if
    count=count+1
    if count <> 0 then
    %>
<span id="<%=count%>" style="cursor:hand" onclick="document.getElementById('<%=nr%>').src='thumbnail.asp?FileName=<%=name%>&Width=142';"><% Response.Write "| " & count %></span>
    <%
    end if
    end if
    next
    set f=nothing
    set fs=nothing
    if first <> "" then
    end if
    %>
|</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</strong></font><br/>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="1">
<td bgcolor="#e7e7e7" height="1"></td>
</tr>
</table>
<br/>
    <%
    end if
    db.MoveNext
    Loop
    db.Close
   
    Set db = Nothing
    %>
<br/>
<br/>
</div>
<div align="left">
<p></p>
</div>
</div>
<p></p>
</div>
</body>



</html>
Avatar billede nazty Nybegynder
04. juni 2007 - 19:17 #9
Here you go. Håber du kan finde rundt i den
Avatar billede nazty Nybegynder
05. juni 2007 - 18:20 #10
har løst det :)
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