Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GnomO!

Selecionar apenas um registro da tabela

Recommended Posts

E ae galera..

 

Seguinte Tenho 3 tabelas, Imoveis, ImoGalerias, ImoGaleriasFotos e quero mostrar na página inicial uma foto da seguinte galeria.

 

Daí fiz esse código:

 

<%Set rstGeral = Server.CreateObject("ADODB.RecordSet")rstGeral.Open "SELECT Imoveis.*, ImoGaleriasFotos.Imagem01 FROM Imoveis INNER JOIN ImoGaleriasFotos ON Imoveis.Galeria = ImoGaleriasFotos.Galeria WHERE Imoveis.Exibir = 1 ORDER BY Imoveis.Codigo;", conn		While Not rstGeral.EOF			Response.Write("<tr>")			intCont = 0			While Not rstGeral.EOF And intCont < 3		intImovelCodigo = rstGeral("Codigo")%>			<td width="33%" valign="top">				<div id="coluna"><center>					<div id="imagem<%=intImovelCodigo%>"><img src="<%=rstGeral("Imagem01")%>" border="0" /></div><br />					<span class="titulo"><%=rstGeral("Chamada")%></span> <br /><br /> <span class="desc"><%If Len(rstGeral("Texto")) > 50 Then Response.Write Mid(rstGeral("Texto"),1,50) & "..." Else Response.Write rstGeral("Texto") %></span><br /><br />					<span class="mais"><a class="mais" href="Imoveis.asp?imo=<%=intImovelCodigo%>">Mais Detalhes <span>»</span></a></span>				</center></div>			</td><%				rstGeral.MoveNext()				intCont = intCont + 1			Wend			If Not rstGeral.EOF Then Response.Write("</tr>")		Wend		If intCont > 0 And intCont < 3 Then			While intCont < 3				Response.Write("<td width=""33%""> </td>")				intCont = intCont + 1			Wend		End If	Response.Write("</table>")	rstGeral.Close()%>

Só que por exemplo eu quero q o select selecione o imovel 1 que tem a galeria 1 e depois vai na tabela imogaleriasfotos e selecione apenas uma foto para mostrar na página inicial. Consegui fazer isto mas ao invés de selecionar apenas uma foto ele duplica e aparece o mesmo imovel X vezes mais com fotos diferentes.

 

Veja o imóvel Casa em condomínio fechado é o mesmo mais com imagens diferentes: www.mgimoveis.net

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

rstGeral.Open "SELECT Imoveis.*, ImoGaleriasFotos.Imagem01 FROM Imoveis INNER JOIN ImoGaleriasFotos ON Imoveis.Galeria = ImoGaleriasFotos.Galeria WHERE Imoveis.Exibir = 1 AND ROWNUM < 2 ORDER BY Imoveis.Codigo;", conn

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retornou o erro:Microsoft JET Database Engine (0x80040E10)Nenhum valor foi fornecido para um ou mais parâmetros necessários./mdgimoveis/Default.asp, line 236Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bah cara...essa estrutura do banco ficou bem ruizinho pra ti fazer isso...mas eu faria assim nesse caso.1 - faria o inner join das tabelas Imoveis e ImoGalerias com um recordset.Faria o loop normal dele (while not rs.eof).....daí dentro desse loop..2 - faria outro recordset buscando na tabela ImoGaleriasFotos uma(1) foto correspondente para o imóvel.Fica um pouco mais lento, mas funcionaria inicialmente. Para amenizar tenta fazer um recordset único que seja criado fora do loop e que apenas será aberto e fechado em cada loop.Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.