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)










