Ir para conteúdo

POWERED BY:

Arquivado

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

WLJ

Registro Aleatório

Recommended Posts

Vou descrever o que eu faço no meu código pra ver se vocês podem me ajudar.

 

1º - Estou selecionando todos os código(índice) da tabela produtos.

2º - Num loop estou guardando todos os códigos numa array().

3º - Guardo o UBound da array numa variavel (qtd_produto).

4º - Faço 4(quatro) Random´s na variavel qtd_produto (UBound(array)) para depois pegar 4 registros no BD que tenham esses códigos.

5º - Função que verifica se todos registros são diferentes, senão random novamente.

 

Agora eu tenho esses quatro códigos aleatórios, um diferente do outro e existentes na tabela!

 

Até aqui tudo ok!

 

Executo essa SQL:

SELECT cod_produto, fabricante FROM tb_produtos WHERE cod_produto in ("&cod1&","&cod2&","&cod3&","&cod4&")

Agora ao problema:

 

A consulta é feita com base no índice, ou seja, ele pega esses 4 códigos e os ordena de acordo com a tabela pesquisada.

 

Alguém tem alguma sugestão de como resolver?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim kara... Exclui o select... Por exemplo:1º - Seleciona todos os registros e guarda os dados em um array2º - Quebra e faz um randon de 0 até o total de ítens no array3º - Agora q você tem os 4 randons, você quebra denovo e pega os valores para exibir...Além de economizar em 1 acesso ao banco, fica mais simples e prático! Eu pelo menos faço assim!

Então Bicicleta, mas é isso que eu estou fazendo...O problema é que fica assim...Ex:Array com o seguinte conteudo...array(4,2,15,11)A SQL fica assim "SELECT * FROM Tabela WHERE COD IN (4,2,15,11)"Porem ela é executada por índice, ou seja, o recorset ficará com os registros nesta ordem: 2,4,11,15Então meu random fica "viciado", ele sorteia aleatóriamente, mas dá prioridade para os primeiros registros, pois a SQL ordena assim.

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.