Ir para conteúdo

POWERED BY:

Arquivado

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

mkboy

While

Recommended Posts

Fiz uma busca no banco e retornou o registro, só que preciso fazer uma tabela dinamica, e fazer com que sendo varias respostas a tabela criei multi linhas.Antes eu gostaria de entender como funciona o Loop! Qual a lógica e sintaxe!Depois vou tentar criar meu proprio loop.Alguem pode me ensinar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um loop bem simples é assim:<%Do While Not objRS.EOF%>Seu HTML, etc... pode ser usado response.write também, ao invés de abrir e fechar o bloco de código.Exemplo: "Nome da notícia: <b><%=objRS("nNoticia")%></b>"<% objRS.MoveNextLoop%>Terminando, esse é um loop bem simples, usando o ADODB.Recordset, se quiser páginação e outros coisas, aí é outra história. E também, aí só está a parte do loop, não está a conexão, nem criado o objeto ADODB.Recordset.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal,Agora se eu quiser fazer ele montar varias linhas de acordo com o resultado eu faço assim?

<%Do While Not objRS.EOF%><table><tr><td><%=objRS("Nome")%></td><td><%=objRS("Email")%></td></tr></table><% objRS.MoveNextLoop%>

Ou seja, ele vai até o final do codigo procura se tem mais algum registro e volta enquanto tiver registro da resposta ele fica dando voltas?Agora o que signidica isso?

Do While Not objRS.EOF

Por que ta Not objRS.EOFQual a diferença de EOF e BOF?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do = Faça

While = Enquanto

Not = Se sabe né?

EOF (End Of File) = Fim do Arquivo

BOF (Begin Of File) = Início do Arquivo

Wend (While End) = Fim do loop While

 

Sintaxe básica de um loop While:

While Not RS.EOF 'condição a ser atendida
 Comandos a serem repetidos
Wend

 

Pelo seu exemplo, você quer montar diversas linhas de uma tabela preenchendo com um resultado de um RecordSet:

<table>
<%Do While Not objRS.EOF%>
<tr><td><%=objRS("Nome")%></td><td><%=objRS("Email")%></td></tr>
<% objRS.MoveNext
Loop%>
</table>

 

Mais duvidas sobre é só perguntar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando, caso você não tenha nenhum registro no banco de dados, acarretará em um erro de BOF e/ou EOF, para resolver isto, neste loop, já acrescente este If:<% If (objRS.BOF or objRS.EOF) Then %>Não existem dados no banco de dados no momento.<% ElseDo While Not objRS.EOF %>Seu HTML, etc... pode ser usado response.write também, ao invés de abrir e fechar o bloco de código.Exemplo: "Nome da notícia: <b><%=objRS("nNoticia")%></b>"<% objRS.MoveNextLoopEnd If %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda da erro.Fiz assim:

<!--Faz um loop no banco e imprime os resultados--><% If (objRS.BOF or objRS.EOF) Then %>Nenum registro localizado.<% ElseDo While Not objRS.EOF %><table border="1"> <tr><td>"Nome: <%=objRS("nome")%>"</td><td>"E-mail:<%=objRS("email")%>"</td></tr></table><% objRS.MoveNextLoopEnd If %> <!--Fim do loop-->

E apresenta este erro:

Erro de tempo de execução do Microsoft VBScript error '800a01a8' Objeto necessário: '' /pesca/boletim/processa_01.asp, line 55

Tentei achar onde falta " e nada encontrei. É esse o motivo do erro? E onde ele esta?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí tá certo, verifique se alguma parte do código, como no SQL Query, ou outro lugar não esteja faltando, olhei o código aí e aparentemente não tem erro, e o loop com if, testei agora pouco aqui, e fiz exatamente como está aí, e funcionou, é em outra parte do código que está com problema.

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.