22. maj 2007 - 12:23Der 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.
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?
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?
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.
'Å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-------------------------------------- '----------------------------------------------------------------- %> <%
'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>
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.