Ir para conteúdo

POWERED BY:

Arquivado

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

alohmann

Exibição de itens de bd em tabela

Recommended Posts

Utilizo o código abaixo para listar os itens de um banco de dados no meu site. Acontece q fica tudo numa única coluna. Como altero ele para q os itens sejam exibidos, por exemplo, em 4 colunas, e aí depois pule pra linha de baixo, exiba mais 4, e assim por diante? <td colspan="3" align="left" valign="top"><% While ((Repeat1__numRows <> 0) AND (NOT recCD.EOF)) %> <table width="449" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="25%"><img src="imagens\cd\<%=(recCD.Fields.Item("imagemCD").Value)%>" width="80" height="80" class="borda" /></td> <td width="55%"><span class="artista"><%=(recCD.Fields.Item("artistaCD").Value)%></span><br /> <span class="titulo"><%=(recCD.Fields.Item("tituloCD").Value)%></span><br /></td> <td width="20%" class="preços"><div align="center" class="preços">R$<%=(recCD.Fields.Item("precoCD").Value)%></div></td> </tr> <tr> <td colspan="3" class="pontos">..........................................................................</td> </tr> </table> <% Repeat1__index=Repeat1__index+1 Repeat1__numRows=Repeat1__numRows-1 recCD.MoveNext()Wend

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bixo não enetendi o que você quer mudar... eu rodei sua pagina aqui e cada item esta em uma linha...você possui duas tabelas uma fora do while que a abraça todas as outras tabelas geradas dentro do while...O Que você quer é que cada TD da tabela gerada pelo while esteja dentro de uma coluna da tabela principal?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bixo não enetendi o que você quer mudar... eu rodei sua pagina aqui e cada item esta em uma linha...

 

você possui duas tabelas uma fora do while que a abraça todas as outras tabelas geradas dentro do while...

 

O Que você quer é que cada TD da tabela gerada pelo while esteja dentro de uma coluna da tabela principal?

Pelo que entendi é isso aqui

 

Tabela atual

Imagem 1

Imagem 2

Imagem 3

Imagem 4

Imagem 5

Imagem 6

 

Tabela que ele quer:

Imagem 1 --- Imagem 2 --- Imagem 3 --- Imagem 4

Imagem 5 --- Imagem 6

 

 

Creio que usando uma estrutura de repetição auxiliar para contar até 4 e listar na horizontal, depois insere nova linha e exibe mais 4, de repente assim ele consiga o resultado que ele quer

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso mesmo q o jonathan falou, mas não sei como fazer essa estrutura de repetição auxiliar. Se alguém puder me ajudar a adaptar o meu código e funcionar como o jonathan falou, fico mto agradecido! De qq forma, vlw pela ajuda já. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou tentar fazer um exempo pra você, mas acho que só pra amanhã a noite pois to sem tempo....se até lá ninguem conseguir te ajudar, espero conseguir...flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não aguentei, não vou deixar você esperando heheeh

 

ai está a estrutura do código, basta você substituir as variaveis pelo seu recordset, não esquecendo de colocar o recordset.movenext no lugar do incremento das variaveis(i=i+1 e j=j+1)

 

espero ue consiga adaptar esse código para o que precisa

 

<%j=1%><%Do While j < 51%>	<table width="900" border="0" cellspacing="0" cellpadding="0">	<%	i=1	%>	<tr>		<%		Do While i < 5		%>			<td><% response.write("Coluna"& i & "  -  linha " & j) %></td>		<%		i=i+1		loop		%>	</tr>	</table><%j=j+1loop%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Velho, nem sei como agradecer cara. Acho q to conseguindo adaptar aqui, mas tá com um probleminha, se puder me ajudar (mais uma vez, hehehehehhee).Tipo, tá tudo ficando em 4 colunas e em linhas, como eu queria. Só q, nas linhas, os itens tão se repetindo. Tipo, primeira linha tem 4 colunas, mas mostra nas 4 o 1º item do BD. Na 2ª linha, mais 4 colunas, e nas 4 o 2º item do BD. Sacou? Acho q é o lance do movenext. Se puder me explicar melhor só essa parte de onde colocar isso, agradeço muito! Segue o novo código, q funciona do jeito q te falei:<%j=1%><%Do While j < 51%> <table width="900" border="0" cellspacing="0" cellpadding="0"> <% i=1 %> <tr> <% Do While i < 5 %> <td><img src="imagens\cd\<%=(recCD.Fields.Item("imagemCD").Value)%>" width="80" height="80" class="borda" /> <%=(recCD.Fields.Item("artistaCD").Value)%> <%=(recCD.Fields.Item("tituloCD").Value)%> <%=(recCD.Fields.Item("precoCD").Value)%></td> <% i=i+1 loop %> <% recCD.MoveNext()%> </tr> </table><%j=j+1loop%><% recCD.MoveNext()%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá ai o código, mastigado heheh, não sei se fiz gambiarra, mas tá funcionando +-

Tem que fazer um tratamento pra saber se o total de registros encontrados no db vai ser par ou impar(dependendo da quantidade de coluna), ou seja, se você definir 4 colunas e tiver no banco 10, a ultima linha vai ficar fora da centralização criando duas colunas. Tenta fazer esse tratamento que o resto ficou funcionando, se alguem fizer algo coloca ai pra galera.

Ah, nesse código falta outra coisa, fechar o recordset e a conexão, acabei esquecendo hehehe :D

<%qtColunas = 4 ' quantidade de colunasSet Con = server.createobject("adodb.connection") 'criando o objeto conexaoSet recCD = Server.CreateObject("ADODB.Recordset") 'criando o objeto recordset										Con.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb") 'abrindo a conexãostrSQL="SELECT * FROM cd" 'selecionando os dados da tabelarecCD.cursortype=3 'Definindo o tipo de cursor para o recordset pode contarrecCD.open strSQL,Con 'executando o recordsettotalRegistros = recCD.recordcount 'qt de registros encontradosresponse.Write("Foram encontrados " & totalRegistros)Do While j < totalRegistros 'enquanto a variavel j for menor que o total de registros, então escreve%>	<table width="900" border="0" cellspacing="0" cellpadding="0">	<%	i=0	%>	<tr>		<%		Do While (i < qtColunas) and (not recCD.eof )		%>			<td>						<%response.write recCD(0)  'exibindo cada linha do registro			%>						</td>		<%		recCD.moveNext 'move para o próximo registro		i=i+1		loop			%>			</tr>	<%j=j+1loop ' move para o proximo valor da variavel j%></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá ai o código, mastigado heheh, não sei se fiz gambiarra, mas tá funcionando +-

Tem que fazer um tratamento pra saber se o total de registros encontrados no db vai ser par ou impar(dependendo da quantidade de coluna), ou seja, se você definir 4 colunas e tiver no banco 10, a ultima linha vai ficar fora da centralização criando duas colunas. Tenta fazer esse tratamento que o resto ficou funcionando, se alguem fizer algo coloca ai pra galera.

Ah, nesse código falta outra coisa, fechar o recordset e a conexão, acabei esquecendo hehehe :D

<%

qtColunas = 4 ' quantidade de colunas

Set Con = server.createobject("adodb.connection") 'criando o objeto conexao
Set recCD = Server.CreateObject("ADODB.Recordset") 'criando o objeto recordset
										
Con.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.mdb") 'abrindo a conexão

strSQL="SELECT * FROM cd" 'selecionando os dados da tabela

recCD.cursortype=3 'Definindo o tipo de cursor para o recordset pode contar

recCD.open strSQL,Con 'executando o recordset

totalRegistros = recCD.recordcount 'qt de registros encontrados
response.Write("Foram encontrados " & totalRegistros)



Do While j < totalRegistros 'enquanto a variavel j for menor que o total de registros, então escreve
%>
	<table width="900" border="0" cellspacing="0" cellpadding="0">
	<%
	i=0
	%>
	<tr>
		<%
		Do While (i < qtColunas) and (not recCD.eof )
		%>
			<td>
			
			<%response.write recCD(0)  'exibindo cada linha do registro
			%>			
			</td>
		<%
		recCD.moveNext 'move para o próximo registro
		i=i+1

		loop	
		%>
		
	</tr>
	<%

j=j+1
loop ' move para o proximo valor da variavel j

%>
</table>

eu tentei fazer mas ta com o seguinte erro:

ADODB.Recordset erro '800a0bb9'

 

Os argumentos são incorretos, estão fora do intervalo aceitável ou estão em conflito.

 

/asp/untitled/MaisVotadosLista.asp, line 47

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.