Ir para conteúdo

POWERED BY:

Arquivado

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

Morpheus#2005

Update vários registros

Recommended Posts

Opa...boa noite....preciso muito realizar um UPDATE em varios registros e nao estou conseguindo...alguma alma boa pode me ajudar??rs

 

Segue codigo formulario :

 

<form id="formulario" name="formulario" method="post" action="atualiza_ranking.asp">
<% 
While ((Repeat1__numRows <> 0) AND (NOT Busca.EOF)) 
%>    
   <%=(Busca.Fields.Item("Cod_ind").Value)%>-
 <input name="ranking<%=(Busca.Fields.Item("Cod_ind").Value)%>" type="text" id="ranking<%=(Busca.Fields.Item("Cod_ind").Value)%>" value="<%=(Busca.Fields.Item("Ranking").Value)%>" />
   </select>
   <label></label>
<br />

 <% 
 Repeat1__index=Repeat1__index+1
 Repeat1__numRows=Repeat1__numRows-1
 Busca.MoveNext()
Wend
%>  
 <input name="botao" type="submit" value="Atualizar todos os dados!" />
</form></body>
</html>

 

Segue codigo da pagina de UPDATE

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/Base_GIP.asp" -->
<%
Set RSfotos_cmd = Server.CreateObject ("ADODB.Command")
RSfotos_cmd.ActiveConnection = MM_Base_GIP_STRING
RSfotos_cmd.CommandText = "SELECT Cod_ind FROM dbo.PIND_Indicador" 
RSfotos_cmd.Prepared = true


Set RSfotos = RSfotos_cmd.Execute
RSfotos_numRows = 0
%>
<%
While Not RSfotos.EOF

  id = RSfotos("Cod_Ind")

  ranking = Request("ranking" & id)
  'sessao = Request("sessao" & id)

 RSfotos_cmd.CommandText =  "UPDATE pind_indicador SET ranking = '"&ranking&"' " &_
  " WHERE Cod_ind = " &id

  RSfotos.MoveNext
Wend

response.Write(ranking)
%>
<%
RSfotos.Close()
Set RSfotos = Nothing
%>

 

Obrigado por qualquer LUZZZZZZZZZZZZZZZZZZZZZ

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da forma como está seu update, ele irá atualizar todos os valores do campo.

Normalmente, é usado um parametro no criterio para indicar exatamente qual registro deve ser atualizado

A sintaxe normalmente é assim:

 

Update <tabela> SET <campo>=<novo_valor> where <criterio>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

Minha sugestão:

 

Na primeira página, mude a linha do input deixando-a desta forma:

 

<input name="ranking_<%=(Busca.Fields.Item("Cod_ind").Value)%>" 
type="text" 
id="ranking_<%=(Busca.Fields.Item("Cod_ind").Value)%>" 
value="<%=(Busca.Fields.Item("Ranking").Value)%>" />

 

note que mudaram os atributos Name e ID do input.

 

 

Na segunda página, faça o seguinte:

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="Connections/Base_GIP.asp" -->
<%
for each Item in Request.Form
if left(Item, len("ranking_")) = "ranking_" then
	arRanking = Split(Item, "_")

	sSQL = "UPDATE pind_indicador SET "
	sSQL = sSQL & "ranking = '" & Request.Form(Item) & "' "
	sSQL = sSQL & "WHERE Cod_ind = " & arRanking(1) & ";"

	MM_Base_GIP_STRING.Execute(sSQL)
end if
next
%>

 

Explicando:

- Na primeira página eu mudei os nomes para Ranking_1, Ranking_2, Ranking_3

- Na segunda página eu faço um loop por todos os itens que recebi do formulário via POST,

se o nome do Item começar com "ranking_" significa que este é um campo definidor de ranking,

neste caso eu quebro um array por underscore (_) e pego o índice 1 deste array, que é meu ID,

depois, dou um request.Form deste campo que estamos trabalhando para receber o valor do ranking.

e por último, monto e executo uma query de update para atualizar a base.

 

Espero ter ajudado.

 

 

Atenciosamente,

 

Anderson Schmitt

Compartilhar este post


Link para o post
Compartilhar em outros sites

um loop na sua string SQL, exemplo

if qtd_produtos = "" then
Response.write("erro..."
response.redirect("outra_pagina.asp")
else
qtd_produtos = split(Request.Form("qtd_produtos"),",")
if qtd_produtos = ""
produtos= Split(Request.Form("produtos"), ",")

For i = 1 To Request.Form("produtos").Count

Response.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"
SQL = "UPDATE pind_indicador SET ranking = '" & request.form("produtos")(i) & "' WHERE Cod_ind = " & request.form("qtd_produtos")(i) & ""

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você colocou a instrução sql do update dentro do comando de texto, mas não está fazendo o execute para efetivar a atualização

 

Não posso dar uma outra solução pois não entendi o proposito. Você seleciona todos os registros de uma tabela e faz update em todos. Imagino que esteja fazendo uma ordenação de fotos na coluna da tabela, a julgar pelo parametro ranking

Compartilhar este post


Link para o post
Compartilhar em outros sites

é recuperar os dados e fazer um loop na string SQL, apenas isso ja resolve

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.