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

Solução Com Arrays


DackAle

Pergunta

E ae galera

Seguinte, atualmente só trabalho com GetRows e Array ou seja guardo todo o conteudo do BD em arrays...

O Caso é que tenho uma pagina que tenho que mostrar varios resultados simultaneos e aleatorios, por exemplo vão ter 3 itens e esses 3 itens cada vez que entrar na pagina mudam... fazer isso com um é facilimo, mas com 3 é dificil por que ? Porque eles podem se repetir não posso deixar que por exemplo desses 3 itens 2 sejam iguais, fiz um codigo assim

    	SQL="SELECT TOP 3 * FROM produtos WHERE promocao=true ORDER BY id DESC"
    	SET RS = Server.CreateObject("Adodb.recordset")
    	RS.OPEN SQL,Conexao,3,3
    	
    	if not rs.eof then
    	promocao = rs.getrows()
    	end if 
    	rs.close
    	set rs = nothing
    	
    	X = 0
    	While X < 3 
    	Randomize
                    Sorteio = cint(ubound(promocao,2) + 1 * RND)
    	Registros = Registros & "," & Sorteio
    	Verifica = InStr(Registros,Sorteio)
    	IF Verifica = 0 Then
    	X = X + 1
    	Registros2 = Registros2 & "," & Sorteio
    	End If
    	Wend
    	
    	Quebra = Split(Registros2,",")
    	FOR I = LBOUND(Quebra,2) TO UBOUND(Quebra,2)

Só que expira a pagina provavel que o looping que esteja acabando com o tempo da pagina, porque ele não consegui encontrar 3 resultados diferentes pra terminar o looping e demora, só que não posso aumentar o tempo de script, imagina o usuario esperando a pagina carregando la ahhahaa

alguém tem alguma ideia de como posso pegar varios arrays aleatorios ou se tem como desordenar as arrays ou seus resultados ? porque seria interessante tb isso, se tivesse como pegar as arrays fora de ordem, seria uma solução...

Se alguém tiver alguma sugestão ficaria grato =)))

Abraçãooo

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

eu não ficaria queimando muito neuronio não. faria logo uma gambiarra já q são tres registros só, eu criaria uma variavel de aplicação cujo valor vai acumulando de 1 a 3, depois eu faria uma comparação antes de criar o recordet se a variavel for 1 deixo em ordem normal, se for 2 ordeno em ordem decrescente e se for 3 uso o rnd().

Link para o comentário
Compartilhar em outros sites

  • 0
eu não ficaria queimando muito neuronio não. faria logo uma gambiarra já q são tres registros só, eu criaria uma variavel de aplicação cujo valor vai acumulando de 1 a 3, depois eu faria uma comparação antes de criar o recordet se a variavel for 1 deixo em ordem normal, se for 2 ordeno em ordem decrescente e se for 3 uso o rnd().

o problema cyber é que esse é o proximo só, no segundo vão ter que ter 15 registros aleatorios ai sim f**** grandaum blink.gif

Se fosse so 3 beleza, mas imagina quando for 15 registros... ai vai ser muito complexo...

Isso vai ser usado numa loja que estou fazendo... uma solução... que funciona seria primeiro fazer um select por distinct e pegar as categorias diferentes de produtos... e dentro delas pegar um aleatorio... isso eu sei que funciona, mas só vai existir registros de categoria diferentes, nunca vão ter duas cameras digitais por exemplo...

mas caso alguém tiver alguma sugestão ta valendo =D

Abraçãooo

Link para o comentário
Compartilhar em outros sites

  • 0

Pra ser sincero o banco vai ser SQL, mas como manjo MUITO POUCO de sql server, quem vai me ajudar é um amigo, ele manja de sql server, enquanto isso vo desenvolvendo em access pra não ficar parado...

mas vo procurar sobre random e sql e ver se acho algo sobre já que você diz que é mais facil =)

Abração cyber

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