Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
> 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.
Faz uma busca ... c acha coisas super legais.Fuiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii :ph34r: