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

[Resolvido] variável não zera


douglasdamame

Pergunta

Bom dia Pessoal,

Estou com uma loja virtual onde eu quero mostrar duas ofertas em uma determinada página. Estas ofertas aperecem lado a lado e na descrição eu idico se tem ou não estoque deste produto. O caso é que eu estou utilizando a variável estoque_atual_ofertas para pegar o valor do BD e dizer se tem estoque ou não, mas não zera o valor para o próximo produto, então se o produto 1 não estiver estoque o produto 2 também já ondica que não tem, apesar de ter.

<% '--------------Mostra Ofertas
Set ofertas = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT top 2 * FROM produtos where idprod <> "&intProdID&" order by RND(INT(NOW*idprod)-NOW*idprod)"
ofertas.Open SQL, abredb, 1, 3
produto = ofertas("idprod")
intPrice = ofertas("preço")
precitonx = formatnumber(intPrice,2)

                    %>
  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><p><b><%=strLg52%></b>

<table align="center" border="0" cellspacing="0" cellpadding="5" width="100%" bordercolor="#003366">
                    <tr> 
                      
<%
n = 1
c = 2
Do while not ofertas.Eof
%>

                      <td valign="bottom" align="center" height="128" width="50%"> 
                        <table width="100%" BORDER="0" CELLPADDING="2" CELLSPACING="0" style="border:1px solid #cccccc">
                      <tr>
                        <td bgcolor=#ffffff>
                          <table width=100% height="135" align=center cellpadding="1" cellspacing="1">
                            <tr>
                              <td align="center" valign=center>                                
                                  <p align="left"><font style="font-size:11px;font-family:<%=fonte%>"><b><font color="000000">
                                            
<a href="produtos.asp?produto=<%=ofertas("idprod")%>" onMouseOut="window.status='';return true;" onMouseOver="window.status='+ Detalhes';return true;" style <%=fontebranca%>";text-decoration:none;"><IMG src="produtos/<%=ofertas("impeq")%>" alt='<%=ofertas("nome")%>' border=0 align="left" ></A></font></b></font><font color="000000" style="font-size:11px;font-family:<%=fonte%>">
  
                                      </font><font style="font-size:11px;font-family:<%=fonte%>"><b><font color="000000">

<%=ofertas("nome")%></font></b></font><font color="000000" style="font-size:11px;font-family:<%=fonte%>"><b>
<br><br>
<font face="<%=fonte%>" style="font-size:11px;color:000000"><%=strLg37%>
<br>
<font face="<%=fonte%>" style="font-size:12px;color:cc0000"><b><%=strlgmoeda & " " & precitonx%></b></font><br><b><%=strLg28%></b></b>
                                      




                            <% '***  Verifica se tem Estoque do Produto
                                           
                                       estoque_atual_ofertas=""
                                       set rs_estoque_ofertas = abredb.execute("SELECT estoque FROM estoque WHERE idproduto="&produto&";")
                                       if not rs_estoque_ofertas.eof then
                           estoque_atual_ofertas=rs_estoque_ofertas("estoque")
                                       rs_estoque_ofertas.close
                                       set rs_estoque_ofertas = nothing
        %> 
                                      
                                      
                                      
<%if estoque_atual_ofertas > 0 then response.write "&s trLg26  "& else response.write "<font color=red>" & strLg27 & "</font>" end if%>
                                     
                                            </font></p>
                              <p align="right"><font style="font-size:11px;font-family:<%=fonte%>"><a href="produtos.asp?produto=<%=ofertas("idprod")%>"  onMouseOut="window.status='';return true;" onMouseOver="window.status='<%=strLg30%>';return true;" style="color:#FFFFFF;text-decoration:none;"><img src=linguagens/portuguesbr/imagens/detalhes.gif width="78" height="32" border="0" align=absbottom></a></font><font><font color="000000"></font></font></p></td>
                            </tr>
                          </table>
                    </table>
                      </td>
                      <%
n = n + 1
ofertas.Movenext
If n > c then
response.write "</tr><tr>"
n = 1
End If
Loop
%>

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Tente fazer estas alterações

<% '--------------Mostra Ofertas
Set ofertas = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT top 2 * FROM produtos where idprod <> "&intProdID&" order by RND(INT(NOW*idprod)-NOW*idprod)"
ofertas.Open SQL, abredb, 1, 3

                    %>
  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><p><b><%=strLg52%></b>

<table align="center" border="0" cellspacing="0" cellpadding="5" width="100%" bordercolor="#003366">
                    <tr> 
                      
<%
n = 1
c = 2
Do while not ofertas.Eof
'***** variaveis dentro do while para atualizar os valores
produto = ofertas("idprod")
intPrice = ofertas("preço")
precitonx = formatnumber(intPrice,2)

%>

                      <td valign="bottom" align="center" height="128" width="50%"> 
                        <table width="100%" BORDER="0" CELLPADDING="2" CELLSPACING="0" style="border:1px solid #cccccc">
                      <tr>
                        <td bgcolor=#ffffff>
                          <table width=100% height="135" align=center cellpadding="1" cellspacing="1">
                            <tr>
                              <td align="center" valign=center>                                
                                  <p align="left"><font style="font-size:11px;font-family:<%=fonte%>"><b><font color="000000">
                                            
<a href="produtos.asp?produto=<%=ofertas("idprod")%>" onMouseOut="window.status='';return true;" onMouseOver="window.status='+ Detalhes';return true;" style <%=fontebranca%>";text-decoration:none;"><IMG src="produtos/<%=ofertas("impeq")%>" alt='<%=ofertas("nome")%>' border=0 align="left" ></A></font></b></font><font color="000000" style="font-size:11px;font-family:<%=fonte%>">
  
                                      </font><font style="font-size:11px;font-family:<%=fonte%>"><b><font color="000000">

<%=ofertas("nome")%></font></b></font><font color="000000" style="font-size:11px;font-family:<%=fonte%>"><b>
<br><br>
<font face="<%=fonte%>" style="font-size:11px;color:000000"><%=strLg37%>
<br>
<font face="<%=fonte%>" style="font-size:12px;color:cc0000"><b><%=strlgmoeda & " " & precitonx%></b></font><br><b><%=strLg28%></b></b>
                                      




                            <% '***  Verifica se tem Estoque do Produto
                                           
                                       estoque_atual_ofertas=""
                                       set rs_estoque_ofertas = abredb.execute("SELECT estoque FROM estoque WHERE idproduto="&produto&";")
                                       if not rs_estoque_ofertas.eof then
                           estoque_atual_ofertas=rs_estoque_ofertas("estoque")
                                       rs_estoque_ofertas.close
                                       set rs_estoque_ofertas = nothing
        %> 
                                      
                                      
                                      
<%
'esta linha havia códigos errados tente desta forma!
if estoque_atual_ofertas > 0 then response.write rs_estoque_ofertas("estoque") else response.write "<font color=red>0</font>" end if
%>
                                     
                                            </font></p>
                              <p align="right"><font style="font-size:11px;font-family:<%=fonte%>"><a href="produtos.asp?produto=<%=ofertas("idprod")%>"  onMouseOut="window.status='';return true;" onMouseOver="window.status='<%=strLg30%>';return true;" style="color:#FFFFFF;text-decoration:none;"><img src=linguagens/portuguesbr/imagens/detalhes.gif width="78" height="32" border="0" align=absbottom></a></font><font><font color="000000"></font></font></p></td>
                            </tr>
                          </table>
                    </table>
                      </td>
                      <%
n = n + 1
ofertas.Movenext
If n > c then
response.write "</tr><tr>"
n = 1
End If
Loop
%>

Editado por Thiago Airold Perez
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --douglasdamame --

Olá Thiago,

Obrigado por responder mas não há erro naquela linha.

" & strLg27 & "

" & strLg28 & "

Em uma outra página existe uma relação de informações:

strLg27 = " Estoque disponível"

strLg28 = " Esgotado"

Esta parte esta funcionando perfeitamente.

O caso realmente é que no Loop entre a primeira busca do estoque e a segunda a variável não zera, então se a primeira der como resultado o "& strLg27 &" todos os outros serão.

<% '***  Verifica se tem Estoque do Produto
                                          
                                       estoque_atual_ofertas=""
                                       set rs_estoque_ofertas = abredb.execute("SELECT estoque FROM estoque WHERE idproduto="&produto&";")
                                       if not rs_estoque_ofertas.eof then
                           estoque_atual_ofertas=rs_estoque_ofertas("estoque")
                                       rs_estoque_ofertas.close
                                       set rs_estoque_ofertas = nothing
        %>

Tentei pegar esta variável e jogá-la a nada, estoque_atual_ofertas="", mas mesmo assim a informação continua.

Cheguei a pegar a rs_estoque_ofertas e também tentar como rs_estoque_ofertas="", e nada também...

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Thiago,

Obrigado pela ajuda. Resolvi da seguinte forma:

<%
'--------------Mostra Ofertas
Set ofertas = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT top 2 * FROM produtos where idprod <> "&intProdID&" order by RND(INT(NOW*idprod)-NOW*idprod)"
ofertas.Open SQL, abredb, 1, 3

n = 1
c = 2

Do while not ofertas.Eof

produto = ofertas("idprod")
intPrice = ofertas("preço")
precitonx = formatnumber(intPrice,2)
estoque_atual_ofertas = ""

%>

As variáveis de busca devem ficar depois da instrução Do While, se ficar antes, os valores e repetem. Apenas hoje notei que os valores dos produtos também se repetiam, ai matei o problema, pois antes só achava que era o estoque...

Muito obrigado pela sua disposição em me ajudar.

Douglas

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...