Ir para conteúdo

POWERED BY:

Arquivado

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

Inside

Atualizar vários registros

Recommended Posts

Caros amigos,

 

Bom, eu tenho um DB com produtos e preços. Eu precisava aplicar um desconto geral nos preços, dai montei este script que gera um desconto de 10% nos preços e atualiza os valores. A questão é que não atualiza do jeito que eu gostaria, alguem saberia dizer por que jogando os valores no value do input não atualiza e quando coloco um valor manual atualiza?

 

Você pode ver o script rodando aqui. Note que se você colocar um valor manualmente no campo Preco com Desconto o script atualiza mas por que não atualiza fazendo a conta do desconto geral e clicando em atualizar?

 

 

desc.asp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Untitled</title>
</head>

<body>

<script language="JavaScript">
<!--
// on each of the textfields, the value of the Record ID associated with that field
// is passed to the RecUpdate function. First the value is surounded with 2 asterisks e.g. *6*
// This is so that *1* can be distinguished from *10*, *11* etc.
function RecUpdate(id){
var ThisID = "*" + (id) + "*"
if (document.form1.ids.value == ""){	// If the hidden field is empty
document.form1.ids.value = (ThisID)	// Store the value in the hidden field (ids) as it is.
}
if (document.form1.ids.value != ""){ // If the hidden field isn't empty
var str = document.form1.ids.value;	// Store the contents of the hidden field in the variable str
var pos = str.indexOf(ThisID);				// Search str to see if this id is allready in it.
if (pos == -1) {							// If the position returned is -1 it isn't allredy in there,
document.form1.ids.value = document.form1.ids.value + ", " + (ThisID)
} 											// so add ", " and this ID to what is already in ids 
}											// to create a list like this *2*, *5*, *8* etc.	
}
//-->
</script>

<form id="form1" name="form1" action="desc_atualiza.asp" method="post">
<input type="hidden" name="ids">

<table border="0" cellspacing="0" cellpadding="0">
<tr><td>ID</td><td>Preco Normal</td><td>Preco com Desconto</td></tr>
<%
StringdeConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\vhosts\maisinside.com.br\cgi-bin\db\precos.mdb"

dim desconto_geral, desconto_tipo, desconto_simobolo, calculo_desconto, desconto_final

'Valor do desconto em %
desconto_geral = 10

'desconto_tipo = 1 (desconto para cima) desconto_tipo = 2 (desconto para baixo)
desconto_tipo = 1

set conexao = Server.CreateObject("ADODB.Connection")
conexao.Open(StringdeConexao)

dim rsdds, sqldds

SQLdds = "SELECT idprod,nome,preco FROM produtos order by nome"

set rsdds = conexao.execute(sqldds)

if rsdds.eof and rsdds.bof then

else
do while not rsdds.eof

calculo_desconto = rsdds("preco") / 100 * desconto_geral

if desconto_tipo = 1 then
desconto_final = rsdds("preco") - calculo_desconto
else
desconto_final = rsdds("preco") + calculo_desconto
end if

	response.write "<tr><td><input type=""text"" name=""id_produto" & rsdds("idprod") & """ value=""" & rsdds("idprod") & """ size=""3""></td><td><input type=""text"" name=""preco_normal"" value=""" & rsdds("preco") & """></td><td><input type=""text"" name=""preco" & rsdds("idprod") & """ onChange=""RecUpdate('" & rsdds("idprod") & "')"" value=" & FormatNumber(desconto_final) & "></td></tr>" & vbCrLf & vbCrLf

rsdds.movenext
loop
end if

set rsdds = nothing

conexao.close
set conexao = nothing
%>
</table>

<table border="0" cellspacing="0" cellpadding="0">
<tr><td height="10"></td></tr>
<tr>
<td width="400"></td>
<td><input type="submit" name="submit" style="font-size:12px;font-family:arial" value="Atualizar Preços"></td>
</tr></table>
</form>

</body>
</html>

 

desc_atualiza.asp

<%
StringdeConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\vhosts\maisinside.com.br\cgi-bin\db\precos.mdb"

dim conn_de

Set conn_de = Server.CreateObject("ADODB.Connection")

conn_de.Open StringdeConexao

varids = replace(request("ids"), "*", "")
varRecArray = split(varids, ", ")
for i = 0 to Ubound(varRecArray)

if(request("preco" & varRecArray(i)) <> "") then commUpdate__varNum = request("preco" & varRecArray(i))

if(request("id_produto" & varRecArray(i)) <> "") then commUpdate__varid = request("id_produto" & varRecArray(i))

dim rsr

Set rsr = Server.CreateObject("ADODB.Recordset")
rsr.Open "produtos where idprod = " + replace(commUpdate__varid, "'", "''") + "", conn_de, 2, 2

rsr("preco") = replace(commUpdate__varNum, "'", "''")

rsr.update

set rsr = nothing

next

response.redirect "desc.asp"

conn_de.close
set conn_de = nothing
%>

 

Obrigado pela atenção recebida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara.. eu nao entendi muito bem a sua duvida.. e nem como você esa fazendo essa alteração.. mas....

 

Se você qr atualizar o valor de TODOS os produtos do BD.. pq nao usa simplesmente a instrução "UPDATE tabela SET campo = valor ".. assim.. ele irá atualizar todos os seus registros..

 

 

Att;

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma olhada, neste exemplo de sistema administrativo, onde existe um mídulo de UPDATE, talvez possa te ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Darkdemo, o script mostra os valores atuais do banco de dados e ele mesmo aplica um desconto pré-determinado, neste caso 10% e o que eu desejo é que a partir de um clique no botão submit o script atualize os valores com o desconto especificado, como num carrinho de compras só que automático (alias parte deste script é retirado de um carrinho de cmpras).

 

 

Caro xanburzum, não há link na sua postagem.

 

 

Obrigado pela atenção de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro xanburzum

 

Eu gostaria de enteder porque não funciona o meu script, sendo que funciona só manualmente.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele não gera nenhum , nada !?!?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro ele não gera nenhum "ERRO", nada !?!?

 

Não, não gera erro o script funciona manualmente acesse aqui e coloque um valor no campo "Preco com Desconto"e você vai ver que altera normalmente, mas quando você pede para alterar somente com os valores gerados pela conta de desconto que estão no VALUE não funciona, gostaria de saber o por que.

 

Obs.: Me perdoe mas não entendi consegui entender esse tutorial que você me mandou. Está muito confuso.

 

Obrigado.

 

Caro xanburzum

 

ao clicar em Atualizar Preços deveria alterar de acordo ocm os novos valores que está no VALUE, eu não entendo porque não funciona.

 

Caros amigos,

 

alguém sabe onde posso encontrar um esmplo de atualização de vários registros?

 

 

Obrigado pela atenção.

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.