ri_nepo Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 estou usando array pegando dados de um formulario , ele gera um loop na página até da time out<%vdata = split(request.form("data"),",")%><%for a = 0 to ubound(vdata)%><%sql = "insert into apostas (data) values ('"& vdata(a) &"')"conexao.execute(sql)%><% next %>mandei escreve na tela e deu este erroinsert into apostas (data) values ('14/08/2004 ')insert into apostas (data) values (' 14/08/2004 ')insert into apostas (data) values (' 14/08/2004 ')insert into apostas (data) values (' 14/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ') alguém pode dar uma força ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Ele deve estar dando time out por ter entrado em loop infinito. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Estranho!!!Fiz esse teste aqui e funcionou: <% data = "15/10/2005,16/11/2004,13/08/2004,31/08/2004" vdata = split(data,",") for a = 0 to ubound(vdata) sql = "insert into apostas (data) values ('"& vdata(a) &"')" response.write (sql) & "<br>" next %> Voce tem ideia do tamanho do looping??da uma olhada no valor de ubound(vdata) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Não sei quanto a vocês!!!Mas, eu conto da seguinte forma: For I = 0 To UBound(Data)-1Pois sempre, o vetor, se incia a partir de zero, e confunde muito o programador dando subscrito fora do intervalo.Abraços!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 (editado) Não sei quanto a vocês!!!Mas, eu conto da seguinte forma: For I = 0 To UBound(Data)-1 Pois sempre, o vetor, se incia a partir de zero, e confunde muito o programador dando subscrito fora do intervalo. Abraços!!! A prinicipio concordei com o raciocionio do ursolouco Mais fazendo um teste pratico percebi que usando a logica dele no exemplo que dou abaixo, o ultimo valor da array não é pego. <% data = "15/10/2005,16/11/2004,13/08/2004,31/08/2004" vdata = split(data,",") for a = 0 to ubound(vdata) - 1 sql = "insert into apostas (data) values ('"& vdata(a) &"')" response.write (sql) & "<br>" next %> Editado Agosto 18, 2004 por cyberalexxx Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Só pra deixar esclarecido o questionamento levanto pelo ursolouco, o contador não pode ser até Ubound(data) - 1.Vejamos o conceito da fução UBound:UBound() = Devolve o maior valor da dimensão de um arrayou seja se a array data tem 20 elementos o valor de UBound(data) sera 19 que é o numero do ultimo elemento e não 20 que é o total de elementos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Só pra deixar esclarecido o questionamento levanto pelo ursolouco, o contador não pode ser até Ubound(data) - 1.Vejamos o conceito da fução UBound:UBound() = Devolve o maior valor da dimensão de um arrayou seja se a array data tem 20 elementos o valor de UBound(data) sera 19 que é o numero do ultimo elemento e não 20 que é o total de elementos. Alexx!!Veja:<% vetor = Array() For I = O to 20 Response.Write("</p>") Redim Preserve vetor(i) vetor(i) = CInt(i) Response.Write(vetor(i) & "<br>") Next Response.Write("</p>") Response.Write(UBound(vetor)) %>Lhe pergunto, quantos itens há neste vetor ? 19, 20, 21 ?E porque ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 21 itensPor que?? pois de 0 a 20 são 21 elementos obviamente.Só não entendi o que você quiz demonstrar com isso, acho que um não esta entendendo o outro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Só não entendi o que você quiz demonstrar com isso, acho que um não esta entendendo o outro. Olha o espirito da coisa:Response.Write(UBound(vetor))' OutPut: 20Viu só como se confunde este lance de vetor ! Toda vez, particularmente EU faço isso, não é uma regra, que retorno informações de um banco de dados e quebro informações com GetRows ou Split (enfim, transforme em vetor!!) conto sempre um registro a menos, pois se puxando o maior iten com UBound do vetor, deixamos de contar o item (0) ou o Ultimo item (*) que no caso não sabemos. Foi isso que tentei mostrar. Abraços!!![urso] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Concordo que realmente confunde.O que eu quiz foi até mesmo tentar deixar menos confuso, para outros usuários que as vezes tenham menos experiencias com variaveis vetoriais. Continuo achando que a contrução abaixo ignora o ultimo valor da array portanto não é adaptavel ao caso proposto neste Post.For I = 0 To UBound(Data)-1Mas para finalizar, a solução mais segura seria:for I = LBound(vdata) to UBound(vdata) AbraçosT+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ursolouco Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Ok!! Fechado!!For I = LBound(Array) to UBound(Array) E o Dark paga as Brejas!!!Abraços!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 (editado) Valeu!!!Vo "pindura" uma na conta do Dark hoje!!!e a segunda vou tomar em homenagem a galera do Forum!!!Só pra constar:A galera que programa em progress faria assim:é mais facil:<% data = "15/10/2005,16/11/2004,13/08/2004,31/08/2004" vdata = split(data,",") For each valor in Vdata response.write (valor) & "<br>" next %> Até + Editado Agosto 18, 2004 por cyberalexxx Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ri_nepo Postado Agosto 18, 2004 Autor Denunciar Share Postado Agosto 18, 2004 Pessoal , usando o ultimo exemplo que o amigo cyberalexxx passou , com um dado funciona , o problema é que eu estou fazendo tipo um bolãoveja na url http://www.ondesta.locaweb.com.br/pitacos_internauta.aspo codigo segue abaixo<table width="604" border="0" align="center" bgcolor="#E0E8D0"> <tr> <td colspan="8"> <div align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="pontuacao.asp"><font color="#000000">Clique aqui para visualizar sua pontuação</font></a></font></div> </td> </tr> <%strsql = "select * from jogos" set rs = conexao.execute(strsql) %> <tr> <td colspan="8"> <div align="center"><font size="2" face="Verdana, Arial, sans-serif"><b>Próximos Jogos </b></font></div> </td> </tr> <tr> <td width="78"> <div align="center"><font size="2" face="Verdana, Arial, sans-serif"><b>Data</b></font></div> </td> <td width="65"> <div align="center"><font size="2" face="Verdana, Arial, sans-serif"><b>Horário</b></font></div> </td> <td width="106"><font size="2" face="Verdana, Arial, sans-serif"></font></td> <td width="20"> </td> <td width="12"><font size="2" face="Verdana, Arial, sans-serif"></font></td> <td width="20"> </td> <td width="143"><font face="Verdana, Arial, sans-serif"></font></td> <td width="106"> <div align="center"><font size="2" face="Verdana, Arial, sans-serif"><b>Local</b></font></div> </td> </tr> <%while not rs.eof%> <tr> <td width="78" bgcolor="#FFFFFF"> <div align="center"><font size="1" face="Verdana, Arial, sans-serif"><%=rs("data")%> <input type="hidden" name="data" value="<%=rs("data")%>"> </font></div> </td> <td width="65" bgcolor="#FFFFFF"> <div align="center"><font size="1" face="Verdana, Arial, sans-serif"><%=rs("horario")%></font></div> </td> <td width="106" bgcolor="#FFFFFF"> <div align="center"><font size="1" face="Verdana, Arial, sans-serif"><%=rs("time1")%> <input type="hidden" name="time1" value="<%=rs("time1")%>"> </font></div> </td> <td width="20" bgcolor="#FFFFFF"> <input type="text" name="resultado1" size="2"> </td> <td width="12" bgcolor="#FFFFFF"> <div align="center"><font size="1" face="Verdana, Arial, sans-serif">X</font></div> </td> <td width="20" bgcolor="#FFFFFF"> <input type="text" name="resultado2" size="2"> </td> <td width="143" bgcolor="#FFFFFF"> <div align="center"><font size="1" face="Verdana, Arial, sans-serif"><%=rs("time2")%> <input type="hidden" name="time2" value="<%=rs("time2")%>"> </font></div> </td> <td width="106" bgcolor="#FFFFFF"> <div align="center"><font size="1" face="Verdana, Arial, sans-serif"><%=rs("local")%> <input type="hidden" name="local" value="<%=rs("local")%>"> </font></div> </td> </tr> <% rs.movenext wend %> </table> <table width="604" border="1" cellspacing="0" cellpadding="0" align="center" class="texto_menor" bordercolor="#E0E8D0" > <tr> <td align="center" colspan="2"><img src="../../../estilos/spacer.gif" width="1" height="1"></td> </tr> <tr> <td align="center" width="48%"> <div class="texto_menor"> <div align="left" class="texto_menor"><font size="2" face="Verdana, Arial, sans-serif"> Nome:</font></div> </div> </td> <td align="center" width="52%"> <div align="left"><font color="#FFFFFF"> <input name=nome style="font: 7pt Verdana, Arial; font-weight:20px; color: #000000; border-color: #000000; border-style: double; width: 150px; border-width: 1px;" size="1" > </font></div> </td> </tr> <tr> <td align="center" width="48%"> <div align="left"><font size="2" face="Verdana, Arial, sans-serif"> E-mail:</font></div> </td> <td align="center" width="52%"> <div align="left"><font color="#FFFFFF"> <input name=email style="font: 7pt Verdana, Arial; font-weight:20px; color: #000000; border-color: #000000; border-style: double; width: 150px; border-width: 1px;" size="1" > </font></div> </td> </tr> <tr> <td align="center" width="48%"> <div align="left"><font size="2" face="Verdana, Arial, sans-serif"> Cidade:</font></div> </td> <td align="center" width="52%"> <div align="left"><font color="#FFFFFF"> <input name=cidade style="font: 7pt Verdana, Arial; font-weight:20px; color: #000000; border-color: #000000; border-style: double; width: 150px; border-width: 1px;" size="1" > </font></div> </td> </tr> <tr> <td align="center" width="48%"> <div align="left"><font size="2" face="Verdana, Arial, sans-serif"> Estado:</font></div> </td> <td align="center" width="52%"> <div align="left"> <font color="#FFFFFF"> <input name=estado style="font: 7pt Verdana, Arial; font-weight:20px; color: #000000; border-color: #000000; border-style: double; width: 150px; border-width: 1px;" size="10" > </font></div> </td> </tr> <tr> <td align="center" width="48%"> <div align="left"><font size="2" face="Verdana, Arial, sans-serif"> Seu time:</font></div> </td> <td align="center" width="52%"> <div align="left"> <font color="#FFFFFF"> <input name=time_coracao style="font: 7pt Verdana, Arial; font-weight:20px; color: #000000; border-color: #000000; border-style: double; width: 150px; border-width: 1px;" size="10" > </font></div> </td> </tr> <tr bgcolor="#E0E8D0"> <td align="center" colspan="2"><font color="#FFFFFF"> <input type="submit" name="Submit" style="font: 7pt Verdana, Arial; font-weight:10px; color: #000000; border-color: #000000; border-style: double; width: 80px; border-width: 1px;" size="1" value="Apostar"> </font></td> </tr> </table>Ai eu chamado a página apostas.asphttp://www.ondesta.locaweb.com.br/apostas.aspcódigo abaixo<%data = request.form("data")vdata = split(data,",")For each valor in vdata%><%time1 = request.form("time1")vtime1 = split(time1,",")For each valor1 in vtime1%><%time2 = request.form("time2")vtime2 = split(time2,",")For each valor2 in vtime2%><%resultado1 = request.form("resultado1")vresultado1 = split(resultado1,",")For each valor3 in vresultado1%><%resultado2 = request.form("resultado2")vresultado2 = split(resultado2,",")For each valor4 in vresultado2%><%sql = "insert into apostas (data,time1,time2,resultado1,resultado2,nome,email,cidade,estado,time_coracao) values ('"& valor &"','"& valor1 &"','"& valor2 &"','"& valor3 &"','"& valor4 &"','"& request.form("nome") &"','"& request.form("email") &"','"& request.form("cidade") &"','"& request.form("estado") &"','"& request.form("time_coracao") &"')"conexao.execute(sql)%><% next %><% next %><% next %><% next %><% next %><%conexao.closeset conexao = nothing%>ai ele gera um loop até dar time outalguém tem ideia do que poderia ser ou alguma sugestão ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 Da uma olhada se isso da certo:apostas.asp<% data = request.form("data") vdata = split(data,",") time1 = request.form("time1") vtime1 = split(time1,",") time2 = request.form("time2") vtime2 = split(time2,",") resultado1 = request.form("resultado1") vresultado1 = split(resultado1,",") resultado2 = request.form("resultado2") vresultado2 = split(resultado2,",") for x = 0 to UBound(vdata) sql = "insert into apostas (data,time1,time2,resultado1,resultado2,nome,email,cidade,estado,time_coracao) values ('"& vdata(x) &"','"& vtime1(X) &"','"& vtime2(X) &"','"& vresultado1(x) &"','"& vresultado2(x) &"','"& request.form("nome") &"','"& request.form("email") &"','"& request.form("cidade") &"','"& request.form("estado") &"','"& request.form("time_coracao") &"')" conexao.execute(sql) next conexao.close set conexao = nothing %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ri_nepo Postado Agosto 18, 2004 Autor Denunciar Share Postado Agosto 18, 2004 deu certomuito obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ri_nepo Postado Agosto 18, 2004 Autor Denunciar Share Postado Agosto 18, 2004 cyberalexxxvocê tem alguma dica , de como eu posso fazer para a partir do momento que eu atualizar os resultados dos jogos , automaticamente eu somar a pontuação do usuario .mais uma vez obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 18, 2004 Denunciar Share Postado Agosto 18, 2004 É meu caro, ai a coisa fica mais complexa e sem conhecer a sua estrutura fica mais dificil ainda.Alguns toques:- Criação de uma tabela de usuarios para armazenar dos dados do apostador e sua pontuação- Identificação do concurso na tabela de apostas- Criar uma pagina de administração para cadastro dos resultados e solicitação de processamento dos pontos dos apostadores.Cara, como eu disse sem conhecer o sistema é complicado.Mais fica a vontade pra voltar a cada duvida que for surgindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Agosto 25, 2004 Denunciar Share Postado Agosto 25, 2004 Ae amigãoesta quase funcionando o meu bolãoo unico problema é o seguinteele compara os valores da tabela jogos com os resultadosse for igual adiciona mais 1o unico problema é que se já existe algum valor e o resultado do jogo está errado , desde ele manter a pontuação , ele volta para 0veja o código abaixo<%vemail=session("email")%> <%vid = request.querystring("id")sql1 = "select * from apostas where id="&vidset rs = conexao.execute(sql1)vresultado1 = rs("resultado1")vresultado2 = rs("resultado2")sql2 = "select * from resultados"set rs1 = conexao.execute(sql2)while not rs1.eofcomando="select max(pontuacao) as ultimo_numero from apostadores where email ='"& vemail &"'"set SHOBA = conexao.execute(comando)r_resultado1 = rs1("resultado1")r_resultado2 = rs1("resultado2")rs1.movenextwendif cint(vresultado1) = cint(r_resultado1) and cint(vresultado2) = cint(r_resultado2) thenapostas = cint(apostas) + 1ultimo = SHOBA("ultimo_numero") + apostasend if%> <%sql_update = "update apostadores set pontuacao = '"& ultimo &"' where email='"&vemail &"'"conexao.execute(sql_update)%> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 25, 2004 Denunciar Share Postado Agosto 25, 2004 Caso já exista uma pontuação e ele acerte o resultado, o sistema esta somando ou esta colocando apenas 1 no update??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Agosto 25, 2004 Denunciar Share Postado Agosto 25, 2004 eu acabei de conseguir , eu so precisei fazer issoif cint(vresultado1) = cint(r_resultado1) and cint(vresultado2) = cint(r_resultado2) thenapostas = cint(apostas) + 1end ifultimo = SHOBA("ultimo_numero") + apostastinha que colocar a variavel ultimo para fora do if.no exemplo que eu utilizei acima eu atualizo resultado por resultado , você tem alguma dica de como eu atualizar a pontuação de uma vez daquele determinado usuario ?abraçoRicardo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 25, 2004 Denunciar Share Postado Agosto 25, 2004 Da pra fazer automatico sim, me explica como estão as suas tabelas que eu te passo uma lógica. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest essa é minha tabela Postado Agosto 27, 2004 Denunciar Share Postado Agosto 27, 2004 possuo 3 tabelastabelas apostas , resultados e apostadoresna tabelas apostas eu armazeno idtime1time2resultado1resultado2dataemailid_jogador na tabela resultados eu armazenoidtime1resultado1time2resultado2datahorariolocal na tabela apostadores eu armazenoidnomeemailcidadepontuacaosenha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest bolão Postado Agosto 27, 2004 Denunciar Share Postado Agosto 27, 2004 o que eu faço atualmente é o seguinte primeiro eu faça uma busca em todos os apostadores através do emaildepois atraves do id_jogador eu busco as apostas feitas na tabela apostasdepois eu faço a comparação entre a tabela apostas e a resultadosdepois eu atualizo jogo por jogo na tabelas apostadores Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Agosto 27, 2004 Denunciar Share Postado Agosto 27, 2004 Cara não to tendo tempo pra pensar muito agora, assim que der tempo monto uma lógica Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest dica Postado Setembro 8, 2004 Denunciar Share Postado Setembro 8, 2004 Eai mano , você conseguiu algum tempinho para dar uma dica sobre este assunto ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ri_nepo
estou usando array pegando dados de um formulario , ele gera um loop na página até da time out
<%
vdata = split(request.form("data"),",")
%>
<%
for a = 0 to ubound(vdata)
%>
<%
sql = "insert into apostas (data) values ('"& vdata(a) &"')"
conexao.execute(sql)
%>
<% next %>
mandei escreve na tela e deu este erro
insert into apostas (data) values ('14/08/2004 ')insert into apostas (data) values (' 14/08/2004 ')insert into apostas (data) values (' 14/08/2004 ')insert into apostas (data) values (' 14/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')insert into apostas (data) values (' 15/08/2004 ')
alguém pode dar uma força ?
Link para o comentário
Compartilhar em outros sites
24 respostass a esta questão
Posts Recomendados
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.