Ir para conteúdo

POWERED BY:

Arquivado

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

fabiosc80

Session, Tenho

Recommended Posts

E ai Pessoal beleza?Seguinte,Estou fazendo uma espécie de minha loja virtual e agora estou na parte do carrinho de compras.Como faço por exemplo:O cliente compra um produto.Ai ele quer comprar mais um, como jogo isso na session que guardou o anterior?Como fazer ela acumular mais de um produto e como colocar todos os valores nela?E como gravar isso tudo no banco depois sendo que tem que ser uma linha no banco pra cada produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

if Trim(Session("cd_produto")) = "" then        Session("cd_produto") = Request("cd_produto")else        Session("cd_produto") = Session("cd_produto") & "," & Request("cd_produto")End if

Quando for guardar os códigos dos produtos....

 

Dim MyArrayMyArray = Split(Session("cd_produto"),",")For i = 0 To Ubound(myArray)....'Código SQL para incluir, um por umNext

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo só nao entendi o que recupera a session.

Tipo e se ela tiver com um produto la ja nela?

 

if Trim(Session("cd_produto")) = "" then        Session("cd_produto") = Request("cd_produto")else        Session("cd_produto") = Session("cd_produto") & "," & Request("cd_produto")End if
Quando for guardar os códigos dos produtos....

 

Dim MyArrayMyArray = Split(Session("cd_produto"),",")For i = 0 To Ubound(myArray)....'Código SQL para incluir, um por umNext

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perceba que "IF" é exatamente para verificar se existe algum dado na session....Traduzindo fica assim:Se a session("cd_produto") esta vazia Session("cd_produto") = Cd_protduto senao Session("cd_produto") = Session("cd_produto") & "," & Cd_protduto EndPerceba que no Senão, eu concateno a session anterior com o novo código do produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como eu faço para alem dele pegar o código do produto ele tambem jogar a quantidade do produto comprado?

 

Perceba que "IF" é exatamente para verificar se existe algum dado na session....

 

Traduzindo fica assim:

 

Se a session("cd_produto") esta vazia

  Session("cd_produto") = Cd_protduto

  senao

  Session("cd_produto") = Session("cd_produto") & "," & Cd_protduto

End

 

Perceba que no Senão, eu concateno a session anterior com o novo código do produto.

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fábio...

Dá pra fazer isso de várias formas....

Entre elas, utilizando mais uma session

 

if Trim(Session("cd_produto")) = "" then       Session("cd_produto") = Request("cd_produto")else       Session("cd_produto") = Session("cd_produto") & "," & Request("cd_produto")End ifif Trim(Session("qtde_produto")) = "" then       Session("qtde_produto") = Request("qtde_produto")else       Session("qtde_produto") = Session("qtde_produto") & "," & Request("cd_produto")End if

Lembre-se que quando você for criar o Array para guardar os códigos, você criará outro Array para as Quantidades, e a posição do Array de códigos deverá ser a mesma posição no Array de Quantidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo precisei reativar esse código pois voltei a fazer a session agora, Me diz uma coisa, eu vou criar a session numa pagina chamada pagina1.asp e é nela que vai somar os valores mas me diz uma coisa. toda vez que eu voltar na pagina para somar algo amais na página ele nao vai dar pau pensando que vai ter que criar outra session com o mesmo nome??

 

E ai nesse código que você fez falta criar a session ou pode ser assim mesmo?

 

 

Fábio...

Dá pra fazer isso de várias formas....

Entre elas, utilizando mais uma session

 

if Trim(Session("cd_produto")) = "" then       Session("cd_produto") = Request("cd_produto")else       Session("cd_produto") = Session("cd_produto") & "," & Request("cd_produto")End ifif Trim(Session("qtde_produto")) = "" then       Session("qtde_produto") = Request("qtde_produto")else       Session("qtde_produto") = Session("qtde_produto") & "," & Request("cd_produto")End if
Lembre-se que quando você for criar o Array para guardar os códigos, você criará outro Array para as Quantidades, e a posição do Array de códigos deverá ser a mesma posição no Array de Quantidade.

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

fabiosc80, a lógica do marcelo está corretíssima. Funciona assim:à cada compra do cliente, você adiciona nessa sessão Session("cd_produto") o código do produto, e na sessão Session("qtde_produto") a respectiva quantidade. por exemplo:eu fiz a compra do CD código 29299 , 10 quantidades, então Session("cd_produto") será "29299" e a Session("qtde_produto") será "10". Quando fizeres outra compra, será adicionado ", outro código" e na qtde ", outra qtde".Como buscar os valores dos respectivos codigos e qtdes ? array = Split(Session("cd_produto"), ",")... e pra listar cada produto array(x)Daí você desenvolve o deletar, inserir, atualizar baseado nessa lógica[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo fiz aqui mais o a partir do segundo produto ele ta somando errado.

Sabe o porque?

 

Vou postar a pagina toda aqui:

 

veja o inicio e no meio da pagina esse código de soma aqui:

<%=Session("Codigo")%><br>

<%calculo = Session("qtde_produto") * TB4("preco")%>

<%=calculo%>

 

 

 

<!--#include file="conexao.asp"--><%Session.LCID = 1046%><% Dim Sql,Sql2,Sql3,Sql4,TB,TB2,TB3,TB4,BC,CodigoCodigoform = request("Codigo")if Trim(Session("Codigo")) = "" then      Session("Codigo") = Request("Codigo")else      Session("Codigo") = Session("Codigo") & "," & Request("Codigo")End ifif Trim(Session("qtde_produto")) = "" then      Session("qtde_produto") = Request("Qtd")else      Session("qtde_produto") = Session("qtde_produto") & "," & Request("Qtd")End ifAbreBancoSql2 = "Select * From Categorias order by NomeCategoria"Set TB2 = BC.Execute(Sql2)Sql = "Select * From Produtos where CodCategoria="&TB2("CodCategoria")&" order by Codigo desc"Set TB = BC.Execute(Sql)Sql4 = "SELECT * FROM Produtos WHERE Codigo="&Codigoform&" ORDER BY Codigo Desc"Set TB4 = BC.Execute(Sql4)%><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>MULT-LABOR</title><link href="imgs/estilo.css" rel="stylesheet" type="text/css"><style type="text/css"><!--.style2 {	color: #FFFFFF;	font-weight: bold;}.style4 {font-weight: bold}--></style></head><body><map name="Map2">  <area shape="circle" coords="27,56,11" href="index.htm"></map><table width="200" border="0" align="center" cellpadding="0" cellspacing="0">  <tr>    <td width="100"><img src="imgs/topo_bar02.gif" width="100" height="94" border="0" usemap="#Map2"></td>    <td width="82"><img src="imgs/layout_r1_c7.jpg" width="343" height="94"></td>    <td width="297" valign="bottom" background="imgs/b_fundo.jpg"> <table border="0" cellspacing="0" width="71%" id="AutoNumber1" style="border-collapse: collapse" bordercolor="#111111">      <tr>        <td width="100%"> </td>      </tr>      <tr><form method="post" action="checkfidel.asp">        <td width="100%" valign="top">    <input name="Email" size="26" style="float: right"></td>      </tr>      <tr>        <td width="100%">        <p align="center">          <input name="Senha" type="password" size="26" style="float: right"></td>      </tr>      <tr>        <td width="100%">        <p align="right"><input type="image" src="imgs/botao.gif"></td></form>    </table></td>  </tr>  <tr valign="top">    <td colspan="3"><table width="100%" height="115" border="0" cellpadding="0" cellspacing="0" background="imgs/bar_fundo.gif">        <tr>          <td height="78" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">            <tr>              <td width="5%"><img src="imgs/topo_bar01.gif" width="54" height="78"></td>              <td width="61%"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="487" height="78">                <param name="movie" value="menu.swf">                <param name="quality" value="high">                <embed src="menu.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="487" height="78"></embed>              </object></td>              <td width="34%"><p><img src="imgs/topo_fone.gif" width="192" height="78"></p></td>            </tr>          </table></td>        </tr>        <tr>          <td valign="top"><table width="709" border="0" align="center" cellpadding="2" cellspacing="0">            <tr>              <td height="5" colspan="3" valign="top"><img src="imgs/transparent.gif" width="5" height="5"></td>              </tr>            <tr>              <td width="26%" height="364" valign="top"><table width="176"  border="0" cellpadding="0" cellspacing="0">                <tr>                  <td width="176"><table width="100%"  border="0" cellpadding="0" cellspacing="0" background="imgs/barras/barra_top03.gif">                      <tr>                        <td width="17%"><div align="left"><img src="imgs/barras/produto01.gif" width="99" height="33"></div></td>                        <td width="78%" background="imgs/barras/produto02.gif"> </td>                        <td width="5%" align="right"><img src="imgs/barras/produto03.gif" width="12" height="33"></td>                      </tr>                  </table></td>                </tr>  <%if TB2.Eof then%>                <tr>                  <td background="imgs/barras/produto17.gif"><span class="style2">  </span></td>                </tr>                <tr>                  <td background="imgs/barras/produto17.gif"><img src="imgs/barras/produto18.gif" width="176" height="10"></td>                </tr><%else%> 	 <%    Do While NOT TB2.EOF%>                  <tr>                  <td background="imgs/barras/produto17.gif"><span class="style2">  <a href="produtos2.asp?cod=<%=TB2("CodCategoria")%>"><%=TB2("NomeCategoria")%></a></span></td>                </tr>                <tr>                  <td background="imgs/barras/produto17.gif"><img src="imgs/barras/produto18.gif" width="176" height="10"></td>                </tr>     <%              TB2.MoveNext     Loopend if  %>        <tr>                  <td background="imgs/barras/produto17.gif"></td>                </tr>                <tr>                  <td background="imgs/barras/produto17.gif"><img src="imgs/barras/produtos_bar01.gif" width="176" height="20"></td>                </tr>              </table>                <table width="178"  border="0" cellpadding="0" cellspacing="0" background="imgs/barras/barra_top03.gif">                  <tr>                    <td width="17%"><div align="left"><img src="imgs/barras/produto07.gif" width="99" height="33"></div></td>                    <td width="78%" background="imgs/barras/produto05.gif"> </td>                    <td width="5%" align="right"><img src="imgs/barras/produto06.gif" width="17" height="33"></td>                  </tr>                </table>                                <table width="176"  border="0" cellpadding="0" cellspacing="0">                  <tr>                    <td width="176" valign="top" background="imgs/barras/produtos_bar05.gif">                   <div id='conteudo' align='center' style='width: 170; height: 200; position: top; overflow: auto'><table width="138"  border="0" align="center"> <%if TB.Eof then%><%else%><%    While NOT TB.EOF%>        <tr>                          <td><a href="produtos3.asp?cod=<%=TB("Codigo")%>&cod2=<%=TB("CodCategoria")%>"><img border="0" src="admin/upload/<%=TB("FotoPequena")%>" width="126" height="86"></a></td>                        </tr>                        <tr>                          <td height="21"><%=TB("NomedoProduto")%></td>                        </tr>     <%              TB.MoveNext     Wendend if  %>	   	                       </table>                                      </div>                                          </td>                  </tr>                  <tr>                    <td background="imgs/barras/produto17.gif"><img src="imgs/barras/produtos_bar02.gif" width="176" height="21"></td>                  </tr>                </table></td>              <td width="57%" height="364" align="center" valign="top"><table width="394"  border="0" cellpadding="0" cellspacing="0" background="imgs/barras/produto05.gif">                <tr>                  <td width="4%"><div align="left"><img src="imgs/barras/produto04.gif" width="16" height="33"></div></td>                  <td width="92%"><strong>Orçamento</strong></td>                  <td width="4%" align="right"><img src="imgs/barras/produto06.gif" width="17" height="33"></td>                </tr>              </table>                <table width="235"  border="0" cellpadding="0" cellspacing="0">                  <tr>                    <td valign="top" background="imgs/barras/produtos_bar04.gif"><div align="center">                      <table width="100%"  border="0" cellpadding="0" cellspacing="5">                        <tr>                          <td>     	 <%=Session("Codigo")%><br>     	 <%calculo =	Session("qtde_produto") * TB4("preco")%>     	 <%=calculo%>               </td>                        </tr>                      </table>                    </div></td>                  </tr>                  <tr>                    <td><img src="imgs/barras/produtos_bar03.gif" width="393" height="21"></td>                  </tr>              </table>                                </td>              <td width="17%" height="364" align="right" valign="top"><div align="center">                <table width="33"  border="0" cellpadding="0" cellspacing="0">                  <tr>                    <td><img src="imgs/barras/produto09.gif" width="114" height="33"></td>                  </tr>                  <tr>                    <td width="114" height="50" valign="top" background="imgs/barras/produto10.gif"><table width="100%"  border="0" align="center">                      <tr>                        <td height="33"><div align="center">0</div></td>                      </tr>                    </table></td>                  </tr>                </table>                <table width="100%"  border="0" cellpadding="0" cellspacing="0">                  <tr>                    <td><img src="imgs/barras/produto11_b.gif" width="114" height="33" border="0"></a></td>                  </tr>                  <tr>                    <td><img src="imgs/barras/produto12_b.gif" width="114" height="27"></td>                  </tr>                  <tr>                    <td><img src="imgs/barras/produto13.gif" width="114" height="27"></td>                  </tr>                  <tr>                    <td><img src="imgs/barras/produto14.gif" width="114" height="33"></td>                  </tr>                  <tr>                    <td height="13"><img src="imgs/barras/produto15.gif" width="114" height="12"></td>                  </tr>                </table>                <table width="33"  border="0" cellpadding="0" cellspacing="0">                  <tr>                    <td><img src="imgs/barras/produto16.gif" width="114" height="33"></td>                  </tr>                  <tr>                    <td width="114" height="50" valign="top" background="imgs/barras/produto10.gif"><table width="100%"  border="0" align="center">                      <tr>                        <td height="33"><div align="center">0</div></td>                      </tr>                    </table></td>                  </tr>                </table>              </div></td>            </tr>          </table></td>        </tr>      </table>    </td>  </tr>  <tr>    <td colspan="3"><img src="imgs/rodape.gif" width="740" height="36" border="0" usemap="#Map"></td>  </tr></table><map name="Map">  <area shape="rect" coords="676,8,728,24" href="http://www.corujato.com.br" target="_blank"></map></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o split divide uma string e joga num array, bastando que esta string tenha um caracter separador para identificar quais e quantas serão as posições do array criadotipo var = "mario;maria"se der um splitNOMEDOARRAY = SPLIT(var,";")você divide a string em um array de duas posições bem no ;ficandoNOMEDOARRAY(0) = "mario"NOMEDOARRAY(1) = "maria"

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso você está usando o Slipt para quardar os resultados emposiçoes diferentes.......... Como no exemplo do mario!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo to fazendo de um jeito aqui mas ta dando um #@?$%~ bug.

 

Na hora de exibir ele mostra o primeiro registro certo mas o segundo ele mostra o valor que é a quantidade multiplicado pelo preco erradamente.

 

Ai na hora de exibir o proximo registro(terceiro) ele mostra certo os valores.

 

Isso só acontece quando eu realizo a operaçao matematica de multiplicar a Quantidade vezes o Preço e sempre nos pares, tipo, o segundo , o quarto, o Sexto inserido...

 

abaixo vou colocar como to criando as sessions, como to fazendo o Split e como to separando, e como to somando.

 

Primeiro a criaçao das sessions:

 

if Trim(Session("Codigo")) = "" then      Session("Codigo") = Request("Codigo")else      Session("Codigo") = Session("Codigo") & "," & Request("Codigo")End ifif Trim(Session("qtde_produto")) = "" then      Session("qtde_produto") = Request("Qtd")else      Session("qtde_produto") = Session("qtde_produto") & "," & Request("Qtd")End ifif Trim(Session("Preco")) = "" then      Session("Preco") = Request("Preco")else      Session("Preco") = Session("Preco") & "," & Request("Preco")End if

Agora os Splits:

 

SepararPro = Split(Session("Codigo"), ",")SepararQtda = Split(Session("qtde_produto"), ",")SepararPreco = Split(Session("Preco"), ",")

E agora como Exibo aonde fica dando Bug...

 

<%        For intI = 0 To UBound(SepararQtda)%> Qtda: <%=SepararQtda(intI) * SepararPreco(intI)%><br> Produto:<%=SepararPro(intI)%><p> <% Next Total = 0For intI = 0 To UBound(SepararQtda)  Total = Total + SepararQtda(intI) * SepararPreco(intI)Next response.write total%>

Agora eu pergunto porque vem errado nessa multiplicação em alguns?

 

quem quiser ver o site é só ir em:

 

SiteAqui

 

É só escolher um produto e Clicar em orçamento e ai colocar a quantidade e Confirmar.

Ai compra um diferente.

Recomento comprar primeiro o "Tablestes de Gardenal" para depois comprar o "Produto Secundario".

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que ta ocorrendo de fato agora??

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro do seu sistema é esse??Microsoft JET Database Engine error '80040e14' Syntax error (missing operator) in query expression 'Codigo='. /multilabor/produtos1.asp, line 14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte

 

Quando eu compro um produto a primeira vez ele mostra os valores certos.

 

Quando eu compro pela segunda vez ele faz o seguinte ao invés dele trazer o valor do preçco ele traz a quantidade apenas da primeira compra.

 

vou postar um exemplo.

 

Tenho 4 compras.

Cheguei a esse valor fazendo for nexts separados para ver oque lista:

 

da esses valores aqui:

 

quantidades

3

2

4

5

 

Precos

236

3

125

2

 

veja que o preço da segunda compra veio a quantidade da primeira compra e o preco da quarta compra veio o da segunda compra.

 

to fazendo assim:

 

To pegando sessions primeiro assim:

 

if Trim(Session("Codigo")) = "" then     Session("Codigo") = Request("Codigo")else     Session("Codigo") = Session("Codigo") & "," & Request("Codigo")End ifif Trim(Session("qtde_produto")) = "" then     Session("qtde_produto") = Request("Qtd")else     Session("qtde_produto") = Session("qtde_produto") & "," & Request("Qtd")End ifif Trim(Session("Preco")) = "" then     Session("Preco") = Request("Preco")else     Session("Preco") = Session("Preco") & "," & Request("Preco")End if

depois que recupero to dando um split pra cada um assim:

 

SepararPro = Split(Session("Codigo"), ",")SepararQtda = Split(Session("qtde_produto"), ",")SepararPreco = Split(Session("Preco"), ",")

e depois jogo os valores aqui:

 

<%        For intI = 0 To UBound(SepararQtda)%>Qtda: <%=SepararQtda(intI) * SepararPreco(intI)%><br>Produto: <%=SepararPro(intI)%><p><%NextTotal = 0For intI = 0 To UBound(SepararQtda) Total = Total + SepararQtda(intI) * SepararPreco(intI)Nextresponse.write total%>

nao entendo o porque ta essa zona

alguem sabe?

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.