Jump to content


Photo

Looping Em 5 Tds Até Acabar Registros...


  • Faça o login para participar
6 replies to this topic

#1 lella

lella

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Feminino

Posted 31/10/2010, 19:59

Boa noite a todos!
estou enferrujada e com sérios problemas de lógica
Preciso de uma ajuda básica sobre o problema a seguir:

'enquanto nao for final dos registros no banco de dados
do while
<table>
<tr>
'aqui monta cinco celulas com os registros
do while
<td>com o registro</td>
contador ate chegar ao quinto registro e para
loop
'inserir o fechamento da tabela e tr
</tr>
</table>
' faz o looping para montar a tabela seguinte com os proximos 5 registros
loop
' assim vai até terminar todos os registros

já tentei varias formas, mas sabe né...não consigui :unsure:
e estou ficando louca :wacko:
help :(

#2 dddidan

dddidan

    Ativo

  • Usuários
  • 381 posts
  • Sexo:Masculino
  • Localidade:Taboão da Serra - SP

Posted 31/10/2010, 20:39

Não lembro direito a sintaxe de asp, mas da pra fazer assim:
´
total_colunas = 5 'numero de colunas
total_linhas = 10 'total de colunas
linha_atual = 0 'total de linhas
coluna_atual = 0 'coluna atual


while linha_atual <= total_linhas 'enquanto não chegar no limite de linhas
 if coluna_atual == total_colunas then 'verifique se a coluna atual é a ultima coluna. se for
  Response.Write"</tr>" 'feche o tr
  linha_atual = linha_atual + 1 'e some mais um nas linhas
  coluna atual = 0 'e zere o contador.
 endif
 if coluna_atual == 0 then'verifique se é a primeira coluna.
  Response.write"<tr>"'se for a primeira, insira um tr
 endif
 Response.Write"<td>conteudo</td>"'depois de passar por todos os filtros, escreva uma coluna
 
 coluna_atual = coluna_atual + 1'e some um ao total de colunas

a sintaxe deve estar cheia de erros por que o que eu sei e mais se assimila ao asp é o vb6, mas ja deve dar para entender

Edição feita por: dddidan, 31/10/2010, 20:40.

Mais vale um Dev C++ na mão do que dois codeblocks voando

PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||

#3 lella

lella

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Feminino

Posted 31/10/2010, 21:45

aff meu Deus..... :ponder:

Segue abaixo a pagina toda....:


<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="../conn/conectdbpostgrefav.asp"-->
<%
SQL="SELECT * FROM tbteste1 WHERE tipo='ok' ;"
set montabusca = db.execute(SQL)

if montabusca.eof then
montabusca.close
set montabusca=nothing
response.write "banco de dados vazio"
end if

if not montabusca.eof then
on error resume next
montabusca.movefirst %>

<html>
<body>

'comeca a montar a tabela
<TABLE align="center" width="1200" cellspacing="5" cellpadding="5" border="0">
<TR>

'criar um loop ate montar 5 celulas
<TD>
<A href="<%=montabusca("linksite")%>" class="me" target="_blank">
<IMG src="picsites/<%=montabusca("imgsite")%>">
<DIV><IMG src="img/<%=montabusca("imggiftipo")%>" class="pq">&nbsp;&nbsp;<%=montabusca("nomesite")%></DIV>
</A>
</TD>

'apos as 5 celulas fechar a tabela
</TR>
</TABLE>
'volta ao inicio e monta outra tabela com mais 5 celular e assim por diante até terminar os registros do banco de dados

</body>
</html>
<!--#include file="../conn/closedbpostgrefav.asp"-->




o que devo utilizar? e de que forma?

2 do while?
um for e um do while?

não estou conseguindo.... <_<

Edição feita por: lella, 31/10/2010, 21:46.


#4 dddidan

dddidan

    Ativo

  • Usuários
  • 381 posts
  • Sexo:Masculino
  • Localidade:Taboão da Serra - SP

Posted 31/10/2010, 21:50

haha acontece, acontece.. é só vc usar o mesmo código que eu fiz, e modificar..
Response.Write'<TABLE align="center" width="1200" cellspacing="5" cellpadding="5" border="0">'
total_colunas = 5 'numero de colunas
total_linhas = 1 'total de colunas
linha_atual = 0 'total de linhas
coluna_atual = 0 'coluna atual


while linha_atual <= total_linhas 'enquanto não chegar no limite de linhas
 if coluna_atual == total_colunas then 'verifique se a coluna atual é a ultima coluna. se for
  Response.Write"</tr>" 'feche o tr
  linha_atual = linha_atual + 1 'e some mais um nas linhas
  coluna atual = 0 'e zere o contador.
 endif
 if coluna_atual == 0 then'verifique se é a primeira coluna.
  Response.write"<tr>"'se for a primeira, insira um tr
 endif
 Response.Write"
                 <TD>
                  <A href="<%=montabusca("linksite")%>" class="me" target="_blank">
                  <IMG src="picsites/<%=montabusca("imgsite")%>">
                  <DIV><IMG src="img/<%=montabusca("imggiftipo")%>" class="pq">&nbsp;&nbsp;<%=montabusca("nomesite")%></DIV>
                  </A>
                 </TD> 
              "'depois de passar por todos os filtros, escreva uma coluna
 
 coluna_atual = coluna_atual + 1'e some um ao total de colunas
wend
Response.Write"</TABLE>"

Deve esatar meio falho pois não manjo quase anda de asp, mas o esquema é esse

Edição feita por: dddidan, 31/10/2010, 21:51.

Mais vale um Dev C++ na mão do que dois codeblocks voando

PHP - ||||||||||||||| MySql - |||||||||||||||
C/C++ - ||||||||||||||| Oracle - |||||||||||||||
PERL - |||||||||||||||

#5 lella

lella

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Feminino

Posted 02/11/2010, 07:26

esta dificil....
consegui mostrar da seguinte forma:
1
2
3
4
5
6
7
8
9

mas queria mostrar

1 2 3 4 5
6 7 8 9

todo o resto esta funcionando só falta essa parte....
segue abaixo:

<% do while not montabusca.eof %>
<TABLE align="center" width="1200" cellspacing="5" cellpadding="5" border="0">
<TR>


o que coloco aqui para repetir esta parte do codigo

<TD>
   <A href="<%=montabusca("linksite")%>" class="me" target="_blank"> 
      <IMG src="<%=montabusca("imgsite")%>">
      <DIV><IMG src="<%=montabusca("imggiftipo")%>" class="pq">&nbsp;&nbsp;<%=montabusca("nomesite")%></DIV>
   </A>			
</TD>
e o que coloco aqui para voltar e repetir de novo e ficar como quero?


</TR>
</TABLE>
<%montabusca.movenext
loop%>


consegui... :lol: :assobio: :lol:

amanhã posto o codigo caso alguem tb precise...
preciso durmir já é muito tarde.


bjos ;)

esta dificil....
consegui mostrar da seguinte forma:
1
2
3
4
5
6
7
8
9

mas queria mostrar

1 2 3 4 5
6 7 8 9

todo o resto esta funcionando só falta essa parte....
segue abaixo:



<% do while not montabusca.eof %>
<TABLE align="center" width="1200" cellspacing="5" cellpadding="5" border="0">
<TR>


o que coloco aqui para repetir esta parte do codigo
For i = 1 to 5


<TD>
   <A href="<%=montabusca("linksite")%>" class="me" target="_blank"> 
      <IMG src="<%=montabusca("imgsite")%>">
      <DIV><IMG src="<%=montabusca("imggiftipo")%>" class="pq">&nbsp;&nbsp;<%=montabusca("nomesite")%></DIV>
   </A>			
</TD>
next
i = 0

e o que coloco aqui para voltar e repetir de novo e ficar como quero?


</TR>
</TABLE>
<%montabusca.movenext
loop%>


consegui... :lol: :assobio: :lol:

amanhã posto o codigo caso alguem tb precise...
preciso durmir já é muito tarde.


bjos ;)


apenas adicionei um FOR NEXT no codigo acima :)

Edição feita por: lella, 02/11/2010, 07:28.


#6 Barata KFK

Barata KFK

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:SÃO PAULO

Posted 05/09/2011, 19:18

Há dias venho procurando uma resposta para a divisão em colunas, encontrei essa postagem, mas justamente onde acontece meu problema, o usuario abandonou, parece.

Consegui montar de acordo com as dicas aqui apresentadas, mas o que acontece é que sempre na segunda e terceira colunas, apenas repete a primeira. Estou colando o código abaixo, e me desculpem se cometei algum erro na postagem, pois é a primeira vez que estou utilizando este forum.

-------------
<%
Response.Buffer = True
Session.LCID = 1046
%>
<%
con= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("adm/pedidos.mdb") & ";"
set cbm=server.createobject("ADODB.Connection")
cbm.open con
vcquery="select * from news order by data DESC"
Set RecSet=cbm.execute(vcquery)
if RecSet.eof then
RecSet.close
set RecSet=nothing
end if
%>
<html>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" marginwidth="0" marginheight="0" bgcolor="#000000" link="#FF0000" vlink="#FF0000" alink="#FFFFFF" text="#FFFFFF">
<div align="center">
<table border="0" cellspacing="0" width="660" id="table1454" cellpadding="4">

<tr>
<td valign="top" align="left">
<%
do while not RecSet.eof
%>
<table border="0" cellspacing="0" width="100%" id="table1455" cellpadding="4">
<tr>
<%
For i = 1 to 3
%>
<td align="left" width="11%">
<font face="Tahoma" color="#000000" size="2">
<a href="news_detalhe.asp?codigo=<%=Recset("codigo")%>" style="text-decoration: none; font-family: Tahoma,sans-serif; letter-spacing: -0.3pt"><span style="text-decoration: none">
<font size="2">
<img border="0" src="adm/fotos/<%=recset("foto")%>" width="180"></font></span></a></font><br>
<span style="text-decoration: none"><font size="2" face="Tahoma,sans-serif">
<a href="news_detalhe.asp?codigo=<%=Recset("codigo")%>" style="text-decoration: none; font-family: Tahoma,sans-serif; letter-spacing: -0.3pt"><%=recset("titulo")%></a></font></span></td>
<%
next
i = 1
%>
<td align="left" width="11%">
&nbsp;</td>

<td align="left" width="11%">
&nbsp;</td>

</tr>
</table>
<%
RecSet.movenext
loop
%>
</td>
</tr>
</table>
</div>
----------------------------------------------------------------




esta dificil....
consegui mostrar da seguinte forma:
1
2
3
4
5
6
7
8
9

mas queria mostrar

1 2 3 4 5
6 7 8 9

todo o resto esta funcionando só falta essa parte....
segue abaixo:



<% do while not montabusca.eof %>
<TABLE align="center" width="1200" cellspacing="5" cellpadding="5" border="0">
<TR>


o que coloco aqui para repetir esta parte do codigo

<TD>
   <A href="<%=montabusca("linksite")%>" class="me" target="_blank"> 
      <IMG src="<%=montabusca("imgsite")%>">
      <DIV><IMG src="<%=montabusca("imggiftipo")%>" class="pq">&nbsp;&nbsp;<%=montabusca("nomesite")%></DIV>
   </A>			
</TD>
e o que coloco aqui para voltar e repetir de novo e ficar como quero?


</TR>
</TABLE>
<%montabusca.movenext
loop%>


consegui... :lol: :assobio: :lol:

amanhã posto o codigo caso alguem tb precise...
preciso durmir já é muito tarde.


bjos ;)

esta dificil....
consegui mostrar da seguinte forma:
1
2
3
4
5
6
7
8
9

mas queria mostrar

1 2 3 4 5
6 7 8 9

todo o resto esta funcionando só falta essa parte....
segue abaixo:



<% do while not montabusca.eof %>
<TABLE align="center" width="1200" cellspacing="5" cellpadding="5" border="0">
<TR>


o que coloco aqui para repetir esta parte do codigo
For i = 1 to 5


<TD>
   <A href="<%=montabusca("linksite")%>" class="me" target="_blank"> 
      <IMG src="<%=montabusca("imgsite")%>">
      <DIV><IMG src="<%=montabusca("imggiftipo")%>" class="pq">&nbsp;&nbsp;<%=montabusca("nomesite")%></DIV>
   </A>			
</TD>
next
i = 0

e o que coloco aqui para voltar e repetir de novo e ficar como quero?


</TR>
</TABLE>
<%montabusca.movenext
loop%>


consegui... :lol: :assobio: :lol:

amanhã posto o codigo caso alguem tb precise...
preciso durmir já é muito tarde.


bjos ;)


apenas adicionei um FOR NEXT no codigo acima :)



#7 warii

warii

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Masculino
  • Localidade:london

Posted 19/02/2012, 06:22

Deve esatar meio falho pois não manjo quase anda de asp, mas o esquema é esse Posted Image




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq