
Imagem Se Repete
#1
Posted 13/12/2008, 09:46
Pessoal, estou desenvolvendo uma galeria de fotos, esta quase pronto porem um erro persiste...
Minha galeria consiste em categoria (tudo ok aqui), clicando na categoria abre os thumbs (tudo ok aqui também) e depois abre uma pagina com a foto original, porem quando clico no primeiro thumb abre a foto original ok, mas quando clico no segundo thumb a foto original se repete.
Então pra vocês verem como ocorre isso, segue o link da galeria:
http://www.aspet.som...album/teste.asp
E ai, o que pode estar ocorrendo... eu sinceramente tentei de tudo mesmo, e só falta isso pra ficar pronto a galeria.
#2
Posted 13/12/2008, 10:54
Veja se não tem nada estático, ou salvo no banco com mesmo nome, algo do tipo...

Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#3
Posted 13/12/2008, 11:09
Tem como vc colocar a parte do código que faz a impressão do caminho da img?
Veja se não tem nada estático, ou salvo no banco com mesmo nome, algo do tipo...
Esse é a parte do thumb.
<!--#include file="conectar.asp"--> <% AbreConexao idcat=request.querystring("idcat") nome_cat=request.querystring("nome_cat") cat=request.querystring("cat") idfoto=request.querystring("idfoto") 'Selecionamos todos os Produtos da Tabela If idfoto = "" Then Set rsBuscaProdutos = Server.CreateObject("ADODB.Recordset") strBuscaProdutos = ("(SELECT * FROM fotos WHERE idcat="&idcat&")") rsBuscaProdutos.open strBuscaProdutos, conexao, 3, 3 'Definimos o Numero de Paginas com a propriedade "PageSize" do objeto Recordset rsBuscaProdutos.PageSize = 5 'Criamos as Validações if rsBuscaProdutos.eof then Mensagem = "Nenhum Registro Encontrado" Response.End else 'Definimos em qual pagina o visitante está if Request.QueryString("pagina")="" then intpagina = 1 else if cint(Request.QueryString("pagina"))<1 then intpagina = 1 else if cint(Request.QueryString("pagina"))>rsBuscaProdutos.PageCount then intpagina = rsBuscaProdutos.PageCount else intpagina = Request.QueryString("pagina") end if end if end if end if end if %> <html> <head> <title>Teste</title> </head> <body> <table border="0"> <tr> <td width="181" colspan="2"></td> </tr> <% 'Iniciamos o Loop rsBuscaProdutos.AbsolutePage = intpagina intrec = 0 While intrec<rsBuscaProdutos.PageSize and not rsBuscaProdutos.eof %> <tr> <td><a href="ver_foto.asp?idcat=<%=rsBuscaProdutos("idcat")%>&idfoto=<%=rsBuscaProdutos("id")%>"><img src="<%=rsBuscaProdutos("thumb")%>"></a></td> <% rsBuscaProdutos.MoveNext intrec = intrec + 1 if rsBuscaProdutos.eof then response.write " " end if Wend %> <tr> <td colspan="3"></td> <td> <% 'Criamos as Validações para a navegação "Anterior" e "Próximo" if intpagina>1 then %> <a href="teste02.asp?pagina=<%=intpagina-1%>">Anterior</a> <% end if if StrComp(intpagina,rsBuscaProdutos.PageCount)<>0 then %> <a href="teste02.asp?pagina=<%=intpagina + 1%>">Próximo</a> <% end if rsBuscaProdutos.close Set rsBuscaProdutos = Nothing %> </td> </tr> </table> </body> </html>
Pagina do foto original
<!--#include file="conectar.asp"--> <% AbreConexao idcat=request.querystring("idcat") nome_cat=request.querystring("nome_cat") cat=request.querystring("cat") idfoto=request.querystring("idfoto") SQL = "SELECT * FROM fotos WHERE idcat =" & idcat & "" Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open SQL, ConStr, 3, 3 foto = Rs("foto") nome_foto = Rs("nome_foto") %> <html> <head> <title>foto</title> </head> <body> <font face="Verdana" size="2"> <div align="center"> <center> <table border="1" cellpadding="3" cellspacing="0" bordercolorlight="#FFFFFF"> <tr> <td><b><img src="<%=foto%>" bordercolorlight="#FFFFFF"></td> </tr> <tr> <td align="center"><b><%=nome_foto%></td> </tr> <tr> <td> </td> </tr> </table> </center> </div> </font> </body> </html>
Coloquei o codigo completo pra analisar melhor, é parte do thumb e foto orignal. Qualquer outro codigo que precisar é só falar...
#4
Posted 14/12/2008, 21:08
Na pagina da foto original, vc ta fazendo o select:
SQL = "SELECT * FROM fotos WHERE idcat =" & idcat & ""
só que vc ta pegando todas as fotos da categoria idcat, mas vc nao ta pegando o id da foto.
Usando o select assim e pegando RS("foto") ele sempre vai retornar a 1a foto deste select e nao a foto que vc quer.
Adicione um WHERE idfoto = "& Request("idfoto) que eu acho que já vai funfar!
Abcs!
O maior guia de hoteis, restaurantes, agências de turismo, albergues e eventos na internet!!!!!
Guilherme K. Mogames
contato@suarota.com.br
#5
Posted 15/12/2008, 07:32
Loko, essa pesquisa que está atualmente retorna mais de um registro, mas ao atribuir
às variáveis os valores atuais do recordset, ele pega o primeiro registro retornado
pela sua query (o que faz que sempre traga o primero cadastrado da categoria de imagens):
SQL = "SELECT * FROM fotos WHERE idcat =" & idcat & ""Faça um teste, simples.
Inclua um for para o RS e veja o que acontece!
O que o GmoGames disse ta massa!
SQL = "SELECT * FROM fotos WHERE idfoto =" & foto & " and idcat =" & idcat & ""Colega outra coisa interessante seria retornar apenas o necessário para a apresentação dos registros em tela,
to falando do "select *", pois assim vc limita o que será retornado para do banco.
SQL = "SELECT foto, nome_foto FROM fotos WHERE idfoto =" & foto & " and idcat =" & idcat & ""

Edição feita por: Renan L. Queiroz, 15/12/2008, 07:43.
Especialidade: Desenvolvimento e Banco de Dados.
Este post lhe ajudou? Agradeça:
#6
Posted 15/12/2008, 10:36
Todas as alternativas deu certo... realmente estava selecionando todas fotos, apenas a primeira imagem, modificando-a apenas pra selecionar foto usei todas as alternativas acima.
Tbem deu certo dessa forma
SQL = "SELECT * FROM fotos WHERE id =" & idfoto & ""
Obrigado GmoGames e Renan, vc foram dez em resolução e atenção. Valeu e pode encerrar o topico.
Edição feita por: Loko da Web, 15/12/2008, 10:37.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)