Ir para conteúdo

POWERED BY:

Arquivado

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

WoodsPhreaker

[Resolvido] Select com Arrray - Preciso de uma luz

Recommended Posts

Bom pessoal, andei meio sumido pois estava resolvendo uns problemas.

 

Estou recorendo a vcs pq já tentei várias soluções aqui e não tive sucesso.

 

Meu problema é o seguinte.

 

Tenho uma aplicação que grava vários ID,s de produtos em um cookie. Os dados são gravados em sequencia, tipo texto, como por exemplo 1,2,3,4,5.

 

Recupero esses dados usando a função Split, que me retorna os numeros dos produtos.

 

Minha dúvida é, como eu posso fazer um select e recuperar os dados dos produtos de acordo com cada posição do Array ?

 

O código me restorna os dados é esse abaixo ...

 

' Loop que mostra os resultados
Codigo_Produto = Cookies_Session
ArrayCodigo_Produto = Split(Codigo_Produto,",")
For i = 0 to Ubound(ArrayCodigo_Produto)
Response.Write (ArrayCodigo_Produto(i) & "<br>")
Next 

O que eu faço agora para comparar esses Ids com o existente no BD e exibilos na tela ?

 

Sei que terei de usar While , Wend ... Mas como posso fazer isso ?

 

http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, pode fazer o select dentro do loop ex:

 


' Loop que mostra os resultados
Codigo_Produto = Cookies_Session
ArrayCodigo_Produto = Split(Codigo_Produto,",")
For i = 0 to Ubound(ArrayCodigo_Produto)
sql="select campos from tabela where id="&ArrayCodigo_Produto(i)
...
Next 


Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, pode fazer o select dentro do loop ex:

 


' Loop que mostra os resultados
Codigo_Produto = Cookies_Session
ArrayCodigo_Produto = Split(Codigo_Produto,",")
For i = 0 to Ubound(ArrayCodigo_Produto)
sql="select campos from tabela where id="&ArrayCodigo_Produto(i)
...
Next 


 

Amigo, muito obrigado pela sua resposta, me ajudou aqui.

 

Agora, se não for abusar, eu montei a conexão aqui, mas não estou sabendo fazer para mostrar os dados de acordo com o bd.

 

Minha conexão está assim:

 


' Loop que mostra os resultados
Codigo_Produto = Cookies_Session
ArrayCodigo_Produto = Split(Codigo_Produto,",")
For i = 0 to Ubound(ArrayCodigo_Produto)
MYSQL = "SELECT nome_produto FROM Produtos WHERE codigo_produto="&ArrayCodigo_Produto(i)&";"
Next 


Set RS_Naveg = CreateObject("ADODB.Recordset")
Set RS_Naveg.ActiveConnection = Conexao
RS_Naveg.CursorLocation = 3
RS_Naveg.CursorType = 3
RS_Naveg.LockType =  1
RS_Naveg.Open MYSQL , Conexao 
While Not RS_Naveg.EOF
Response.Write RS_Naveg("nome_produto") 
RS_Naveg.MoveNext
Wend
RS_Naveg.Close
SET RS_Naveg = Nothing


response.write "<a href=""Default2.asp?LimparNavegacao=Sim"">Sair</a>"

 

Desta maneira está dando erro.

 

Você poderia me orientar como devo proceder agora ?

 

Mais uma vez, muito obrigado pela atenção !!

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro gerado, poste o número e linha...

 

att.

 

X@nBuRzUm

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o erro gerado, poste o número e linha...

 

att.

 

X@nBuRzUm

 

Olá xanburzum, obrigado pela atenção.

 

Olha só, sinceramente eu acho que estou ficando doido, pq passei a tarde toda de hj tentando fazer essa rotina funcionar e nem com reza dava certo. Fui testar o código agora p/ descrever o erro p/ você e não é que essa *&¨#&%¨*&¨@@&%@ funcionou ?

 

Bom, vou postar o que eu fiz aqui, da uma olhada se está td correto e se não tem alguma pegadinha nisso ...

 

 


' Loop que mostra os resultados
Codigo_Produto = Cookies_Session
ArrayCodigo_Produto = Split(Codigo_Produto,",")

For i = 0 to Ubound(ArrayCodigo_Produto)

Set RS_Naveg = CreateObject("ADODB.Recordset")
Set RS_Naveg.ActiveConnection = Conexao
MYSQL = "SELECT nome_produto FROM Produtos WHERE codigo_produto="&ArrayCodigo_Produto(i)&";"
RS_Naveg.CursorLocation = 3
RS_Naveg.CursorType = 3
RS_Naveg.LockType =  1
RS_Naveg.Open MYSQL , Conexao 
Response.Write "<a href=produtos_descricao.asp?lang=pt_BR&codigo_produto=" & ArrayCodigo_Produto(i) & ">"& ArrayCodigo_Produto(i) &"</a> - Nome do Produto: " & RS_Naveg("nome_produto") & "<br>" 
RS_Naveg.Close
SET RS_Naveg = Nothing

Next 

Tenho certeza ( ou pelo menos acho que tenho ) que fiz dessa maneira e deu erro, agora que cheguei em casa, fui testar, deu certo. Sinceramente não entendo.

 

 

Para finalizar essa rotina, só preciso mesmo é impedir ou pelo menos filtrar o array para que ele não apresente valores duplicados. Você teria uma idéia de como posso fazer isso ?

 

Só tenho que agradecer a vcs que sempre me ajudam aqui com meus problemas ... rs. Mas podem ter certeza que estou retribuindo a ajuda para outras pessoas tbm.

 

Valeu !! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

que bom que deu certo,

e para você verificar valores duplicados no array , verifica este link.

 

até mais.

http://forum.imasters.com.br/index.php?/topic/353240-valor-duplicado-em-array/

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria mais simples colocar o IN na clausula WHERE, ficaria mais rápida a execução foi você moveria o cursor. Da forma que está, cria o objeto diversas vezes e faz o loop de cada ID de produto. Em uma quantidade significativa de usuários simultaneos isso pode prejudicar a performace

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.