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

Insert Com Array


ri_nepo

Pergunta

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

  • 0

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)

Link para o comentário
Compartilhar em outros sites

  • 0

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 por cyberalexxx
Link para o comentário
Compartilhar em outros sites

  • 0

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 array

ou 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.

Link para o comentário
Compartilhar em outros sites

  • 0
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 array

ou 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 ?

Link para o comentário
Compartilhar em outros sites

  • 0
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: 20

Viu só como se confunde este lance de vetor ! wink.gif

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) huh.gif ou o Ultimo item (*) que no caso não sabemos. dry.gif

Foi isso que tentei mostrar. smile.gif

Abraços!!!

[urso]

Link para o comentário
Compartilhar em outros sites

  • 0

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)-1

Mas para finalizar, a solução mais segura seria:

for I = LBound(vdata) to UBound(vdata)

Abraços

T+

Link para o comentário
Compartilhar em outros sites

  • 0

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 por cyberalexxx
Link para o comentário
Compartilhar em outros sites

  • 0

Pessoal , usando o ultimo exemplo que o amigo cyberalexxx passou , com um dado funciona , o problema é que eu estou fazendo tipo um bolão

veja na url

http://www.ondesta.locaweb.com.br/pitacos_internauta.asp

o 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&ccedil;&atilde;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&oacute;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&aacute;rio</b></font></div>

</td>

<td width="106"><font size="2" face="Verdana, Arial, sans-serif"></font></td>

<td width="20">&nbsp;</td>

<td width="12"><font size="2" face="Verdana, Arial, sans-serif"></font></td>

<td width="20">&nbsp;</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">&nbsp;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">&nbsp;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">&nbsp;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">&nbsp;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">&nbsp;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.asp

http://www.ondesta.locaweb.com.br/apostas.asp

có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.close

set conexao = nothing

%>

ai ele gera um loop até dar time out

alguém tem ideia do que poderia ser ou alguma sugestão ?

Link para o comentário
Compartilhar em outros sites

  • 0

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
%>

Link para o comentário
Compartilhar em outros sites

  • 0

É 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

Link para o comentário
Compartilhar em outros sites

  • 0

Ae amigão

esta quase funcionando o meu bolão

o unico problema é o seguinte

ele compara os valores da tabela jogos com os resultados

se for igual adiciona mais 1

o unico problema é que se já existe algum valor e o resultado do jogo está errado , desde ele manter a pontuação , ele volta para 0

veja o código abaixo

<%vemail=session("email")%>

<%

vid = request.querystring("id")

sql1 = "select * from apostas where id="&vid

set rs = conexao.execute(sql1)

vresultado1 = rs("resultado1")

vresultado2 = rs("resultado2")

sql2 = "select * from resultados"

set rs1 = conexao.execute(sql2)

while not rs1.eof

comando="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.movenext

wend

if cint(vresultado1) = cint(r_resultado1) and cint(vresultado2) = cint(r_resultado2) then

apostas = cint(apostas) + 1

ultimo = SHOBA("ultimo_numero") + apostas

end if

%>

<%

sql_update = "update apostadores set pontuacao = '"& ultimo &"' where email='"&vemail &"'"

conexao.execute(sql_update)

%>

Link para o comentário
Compartilhar em outros sites

  • 0

eu acabei de conseguir , eu so precisei fazer isso

if cint(vresultado1) = cint(r_resultado1) and cint(vresultado2) = cint(r_resultado2) then

apostas = cint(apostas) + 1

end if

ultimo = SHOBA("ultimo_numero") + apostas

tinha 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ço

Ricardo

Link para o comentário
Compartilhar em outros sites

  • 0
Guest essa é minha tabela

possuo 3 tabelas

tabelas apostas , resultados e apostadores

na tabelas apostas eu armazeno

id

time1

time2

resultado1

resultado2

data

email

id_jogador

na tabela resultados eu armazeno

id

time1

resultado1

time2

resultado2

data

horario

local

na tabela apostadores eu armazeno

id

nome

email

cidade

pontuacao

senha

Link para o comentário
Compartilhar em outros sites

  • 0

o que eu faço atualmente é o seguinte

primeiro eu faça uma busca em todos os apostadores através do email

depois atraves do id_jogador eu busco as apostas feitas na tabela apostas

depois eu faço a comparação entre a tabela apostas e a resultados

depois eu atualizo jogo por jogo na tabelas apostadores

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...