Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida com LOOP em ASP sem utilizar "do while not rs.eof"


felipego

Pergunta

Pessoal, Primeira postagem aqui. Só explicando, eu não sou webmaster, eu comecei a mexer a muito pouco tempo com a linguagem ASP, então está surgindo algumas dúvidas ainda. Seguinte, estou fazendo um painel para adminstração de uma liga de fifa11 para Playstation 3. E tem a tabela de jogos, porém só está aparecendo o primeiro record set da tabela de jogos, e eu coloquei mais de um lá, portanto teria que fazer o loop para ele ir achando e escrevendo até acabar o banco de dados.

O problema, é que eu não estou usando o rs.eof, já que eu não estou utilizando as siglas " rs " para retornar as colunas. Eu setei variáveis, na hora que eu puxei os dados no SQL. Vou explicar melhor com o código, que acredito que vocês vão entender e poder assim me ajudar.

Puxando os dados do Banco de dados via SQL:

<%

' Pega o time de casa
sql = "SELECT * FROM  `Jogos` WHERE `ID_ENTIDADE_CASA` = '"&Session("identidade")&"' OR `ID_ENTIDADE_FORA` = '"&Session("identidade")&"'"
set rs = conexao.execute(sql)

t1 = rs("ID_ENTIDADE_CASA")
t2 = rs("ID_ENTIDADE_FORA")
rodada = rs("NR_RODADA")
idjogo = rs("ID_JOGO")

sql = "SELECT * FROM Entidade WHERE ID_ENTIDADE = '"&t1&"'"
set rs = conexao.execute(sql)

idtimec = rs("ID_TIME")
idusercasa = rs("ID_USUARIO")

sql = "SELECT * FROM Login WHERE ID_USUARIO = '"&idusercasa&"'"
set rs = conexao.execute(sql)

psncasa = rs("DE_PSN")

sql = "SELECT * FROM Time WHERE ID_TIME = '"&idtimec&"'"
set rs = conexao.execute(sql)

detimecasa = rs("DE_TIME")
urltimecasa = rs("URL_IMAGEM")
idtimecasa = rs("ID_TIME")
'----------------------------------------------------------
' Pega o time de fora
sql = "SELECT * FROM  `Jogos` WHERE `ID_ENTIDADE_CASA` = '"&Session("identidade")&"' OR `ID_ENTIDADE_FORA` = '"&Session("identidade")&"'"
set rs = conexao.execute(sql)

t2 = rs("ID_ENTIDADE_FORA")

sql = "SELECT * FROM Entidade WHERE ID_ENTIDADE = '"&t2&"'"
set rs = conexao.execute(sql)

idtimef = rs("ID_TIME")
iduserfora = rs("ID_USUARIO")

sql = "SELECT * FROM Login WHERE ID_USUARIO = '"&iduserfora&"'"
set rs = conexao.execute(sql)

psnfora = rs("DE_PSN")
sql = "SELECT * FROM Time WHERE ID_TIME = '"&idtimef&"'"
set rs = conexao.execute(sql)

detimefora = rs("DE_TIME")
urltimefora= rs("URL_IMAGEM")
idtimefora = rs("ID_TIME")

%>
Bom, agora temos todas as variáveis que eu iria precisar. Eu sei que existe outros métodos como Innerjoin para deixar mais facil tudo no código, porém fiquei o dia todo ontem tentando usar o innerjoin e não deu certo hehe, então fiz essa gambiarra toda. Agora vamos para a parte de onde eu necessito fazer o LOOP
<div align="center" id="jogos">
<table align="center" class="classjogos">
<tr>
<td></td>
<td><%response.write("Rodada: ")%><% response.write (rodada)%></td>
<td></td>
</tr>
<tr>
<td><% response.write (detimecasa)%></td>
<td></td>
<td><% response.write (detimefora)%></td>
</tr>

<tr>
<td><img src="<%response.write (urltimecasa)%>"></td>
<td>X</td>
<td><img src="<%response.write (urltimefora)%>"></td>
<td><%'response.write rs("ID_TIME")%></td>
</tr>
<tr>
<td><% response.write (psncasa)%></td>
<td></td>
<td><% response.write (psnfora)%></td>
</tr>
<tr>
<td></td>
<td>
<form method="POST" action="sumula.asp">
  <input type="hidden" name="idpartida" id="identificajogo" value="<%response.write (idjogo)%>">
  <input type="submit" id="enviajogo">
  </form>
</td>
<td></td>
</tr>
</table>

</div>

O resultado que temos é esse:

capturarhs.jpg

Como podemos ver só mostra uma partida. Então eu tenho que fazer o loop até achar todas as rodadas.

alguém pode me ajudar com isso?

Se puder eu agradeço.

Qualquer dúvida eu estou a disposição desde já.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Felipe...

Erro no conceito...

A programacao esta ocorrendo direito... mas pense:

Para colocar o leite na geladeira eu preciso: ter o leite na mao, abrir a gelareida, colocar o leite onde é devido, fechar a geladeira.

Certo?

então, faca isto com seu codigo...

O loop precisa existir (while not rs.EOF.....rs.movenext ..... wend), e toda aquela setagem de variaveis, precisa setar, "imprimir na tela" (response.write(blablabla)) e rodar novamente...

então, refaca o seu codigo, por que pelo que percebi, voce esta mostrando apenas o ultimo jogo, e não todos como queria... certo?

Abracos, boa sorte.

Link para o comentário
Compartilhar em outros sites

  • 0

Agora q vi que voce não quer usar While not...

não sei porque, mas tudo bem... ema ema... :P

Bom, então "contatene" os resultados, formando um array:

<%

Dim MeuArray

MenuArray = " "

while not rs.EOF '(isto voce vai ter q fazer, para correr todo o RS!!!)

MenuArray = MeuArray & "," & rs("campo")

rs.movenext

wend

'depois, para mostrar

For Each item In MeuArray

Response.Write(item & "<br />")

Next

%>

Acho que voce esta complicando as coisas, mas beleza....

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, eu não entendi sua dúvida...

você não quer usar loop do tipo while ou não sabe utilizar?

As siglas RS ou ObjRS ou qualquer outra coisa é você que determina... vai de acordo com sua organização e critérios... pode determinar por exemplo que um recordset tenha o nome de "troço", exemplo:

SQL_troço =  "SELECT * FROM sua tabela"
Set troço = objConn.Execute(ComandoSQL_troço)
Ou fazer o mesmo de uma forma mais clássica:
ComandoSQL =  "SELECT * FROMsua tabela"
Set ObjRS = objConn.Execute(ComandoSQL)
Sacou? É tudo igual... até aí não tem diferenca nenhuma... O loop para o que você quer é fundamental e muito simples, exemplo:
while not troço.eof
response.write troço("campo_da_tabela")
troço.movenext
wend

Importante: usei a palavra troço apenas como exemplo, o aconselhável é não usar palavras com caracteres especiais ou acentos como é o caso d "ç" ;-)

Agora o lance é botar a mão na massa e quebrar a cabeça...

qualquer coisa postaí....

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...