AlexCT Postado Outubro 18, 2004 Denunciar Share Postado Outubro 18, 2004 Queria de uma ajudaappós eu selecionar itens por um determinado campogostaria que ao apresentar eles, fossem apresentados por aleatoriamente, cada vez que a pessoa acessar, aparece-se uma ordem diferente...valeu Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Outubro 18, 2004 Denunciar Share Postado Outubro 18, 2004 De uma olhada aki pra ver c t ajuda.http://www.aspbrasil.com.br/dicas/detalhes...odConteudo=1417 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 19, 2004 Autor Denunciar Share Postado Outubro 19, 2004 utilizeiorder by Rand()e deu esse erroMicrosoft JET Database Engine error '80040e14'Undefined function 'RAND' in expression./alexct/procura_ramo.asp, line 36ORDER by RAND()"sera que isso funciona mesmo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Outubro 19, 2004 Denunciar Share Postado Outubro 19, 2004 As vezes só funciona em banco MySql, conforme descrito no tutorial. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 19, 2004 Autor Denunciar Share Postado Outubro 19, 2004 existe alguma alternativa então? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Outubro 19, 2004 Denunciar Share Postado Outubro 19, 2004 você pode apresentar aleatoriamente, seguindo uma função que tem no tópico de funções.dá uma passada por lá.. senao me engano, foi postada uma forma de pegar registros aleatoriamente .. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 20, 2004 Autor Denunciar Share Postado Outubro 20, 2004 naoa chei, pois la tem para randomizar e recuperar 1 estou enganado?estou precisando ranzomiza o já selecionado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Outubro 20, 2004 Denunciar Share Postado Outubro 20, 2004 estou precisando ranzomiza o já selecionado Hanh?Randomizar o que já está selecionado?Se já tá selecionado, como vai randomizar? Tipo.. não entendi agora.. se já selecionou o registro, vai randomizar o que? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Outubro 20, 2004 Denunciar Share Postado Outubro 20, 2004 eu usei esse uma vez<% 'criando a conexão Set Conexao = Server.CreateObject("ADODB.Connection") Conexao.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mappath("fotos.mdb") 'conta o total de registros ComandoSQL = "SELECT COUNT(id) AS total FROM eventos" Set bd = Conexao.Execute(ComandoSQL) 'faz a escolha de um numero aleatorio randomize() peso = Int(bd("total") *Rnd) + 1 bareta=bd("total") 'seleciona o registro aleatorio ComandoSQL = "SELECT top "&peso&" * FROM eventos" Set bd = Conexao.Execute(ComandoSQL) bd.Move peso - 1 'imprime na tela o registro escolhido Response.Write bd("evento")%><br><% 'fecha a conexão Conexao.Close Set Conexao = Nothing Set bd = Nothing 'mostra o numero escolhido Response.Write peso %>|||<% 'mostra o total de registros Response.Write bareta %>esta no tópico de funções Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 20, 2004 Autor Denunciar Share Postado Outubro 20, 2004 mas se o id autonumerico, não tiver na sequencia, tipo: tiver uns furos, este script funcionará? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Outubro 20, 2004 Denunciar Share Postado Outubro 20, 2004 o codigo no qual me referi, seria este que bareta postou .. assim como devem ter mais codigos desses postados aqui na sb .. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Outubro 20, 2004 Denunciar Share Postado Outubro 20, 2004 mas se o id autonumerico, não tiver na sequencia, tipo: tiver uns furos, este script funcionará? sei lá... da pra fazer assim:<% sql="select * from tabela where condicao='"& variavel &"'" set rs=conn.execute(sql) id="" DO WHILE NOT RS.EOF id=id & rs("id")&"." RS.MoveNext LOOP rs.close set rs=nothing id=id total = 1 cod="" For i = 1 to total Arraybareta = Split(id, ".") Randomize() sorteio = Rnd() * UBound(Arraybareta) sorteio = CInt(sorteio) cod=cod&Arraybarreta(Cint(sorteio)) Next sql="select * from tabela where id="& cod &"" set rs=conn.execute(sql) response.write rs("item") rs.close %> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 21, 2004 Autor Denunciar Share Postado Outubro 21, 2004 Barretapode me dar uma ajudapois tentei entender o código e fiquei meio perdidoCOLOQUEI EM MAIUSCULA E NEGRITO PARA FACILITAR<%sql="select * from tabela where condicao='"& variavel &"'"set rs=conn.execute(sql)id=""DO WHILE NOT RS.EOFid=id & rs("id")&"." PORQUE?RS.MoveNextLOOPrs.closeset rs=nothingid=idtotal = 1cod=""For i = 1 to total PARA QUÊArraybareta = Split(id, ".") PORQUE?Randomize()sorteio = Rnd() * UBound(Arraybareta) PRA QUE?sorteio = CInt(sorteio)cod=cod&Arraybarreta(Cint(sorteio)) PORQUE?Nextsql="select * from tabela where id="& cod &""set rs=conn.execute(sql)response.write rs("item")rs.close%>Ficarei muito grato, estou precisando muito dessa ajudaporque paraMYSQL, tem o comando RAND(), não tem nada semelhante para Access Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Outubro 21, 2004 Denunciar Share Postado Outubro 21, 2004 o codigo que o bareta postou funcionou?<%'seleciona os dados do bancosql="select * from tabela where condicao='"& variavel &"'"'executa o sql, armazenando o resultado do select em RSset rs=conn.execute(sql)'inicializa o IDid=""'começa o loop, passando por todo o RS, que contem o resultado do SELECT no bancoDO WHILE NOT RS.EOF'aqui, a variavel ID recebe o valor dele mesmo, mais "." mais o campo ID do banco. Formando assim um array com todos os IDsid=id & rs("id")&"." 'vamos para o proximo registro da tabelaRS.MoveNext'define o fim do whileLOOP'fecha o RSrs.closeset rs=nothing'inicializa variaveis auxiliaresid=idtotal = 1cod=""'aqui, começa uma repetição, para quebrar a variavel ID em um vetor ..onde cada linha do vetor é um valor antes do ponto(.)For i = 1 to total'armazena todo o conteudo da variavel ID, linha a linha no vetor arraybaretaArraybareta = Split(id, ".") 'embaralha todo o arrayRandomize()'agora, após embaralhar os valores, sorteia aleatoriamente eles, para não ser repetidosorteio = Rnd() * UBound(Arraybareta)sorteio = CInt(sorteio)cod=cod&Arraybarreta(Cint(sorteio))Nextsql="select * from tabela where id="& cod &""set rs=conn.execute(sql)response.write rs("item")rs.close%>bem, como não fui eu quem fez o codigo, as partes que eu entendi, eu comentei.o que eu não comentei, são coisas, que eu não entendi, ou que não acharia necessario nesse script.T+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 cyberalexxx Postado Outubro 21, 2004 Denunciar Share Postado Outubro 21, 2004 Sera que este código serve??Pois pelo que vi ele exibe apenas 1 registro, é isso?Pelo o que entendi da duvida do AlexCT ele quer mostrar vários registros. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Outubro 21, 2004 Denunciar Share Postado Outubro 21, 2004 (editado) pegando a explicação do dark e adicionando alguns dados em vermelho.<%'seleciona os dados do bancosql="select * from tabela where condicao='"& variavel &"'"'executa o sql, armazenando o resultado do select em RSset rs=conn.execute(sql)'inicializa o IDcont_id=0id=""'começa o loop, passando por todo o RS, que contem o resultado do SELECT no bancoDO WHILE NOT RS.EOF'aqui, a variavel ID recebe o valor dele mesmo, mais "." mais o campo ID do banco. Formando assim um array com todos os IDscont_id=cont_id+1id=id & rs("id")&"." 'vamos para o proximo registro da tabelaRS.MoveNext'define o fim do whileLOOP'fecha o RSrs.closeset rs=nothing'inicializa variaveis auxiliaresid=idtotal = cont_idcod=""'aqui, começa uma repetição, para quebrar a variavel ID em um vetor ..onde cada linha do vetor é um valor antes do ponto(.)For i = 1 to total'armazena todo o conteudo da variavel ID, linha a linha no vetor arraybaretaArraybareta = Split(id, ".") 'embaralha todo o arrayRandomize()'agora, após embaralhar os valores, sorteia aleatoriamente eles, para não ser repetidosorteio = Rnd() * UBound(Arraybareta)sorteio = CInt(sorteio)cod=cod&Arraybarreta(Cint(sorteio))'agora sorteamos o id selecionado e apresentamos ele.sql="select * from tabela where id="& cod &""set rs=conn.execute(sql)response.write rs("item")rs.closeset rs=nothingNextrs.close%> Editado Outubro 21, 2004 por bareta Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 21, 2004 Autor Denunciar Share Postado Outubro 21, 2004 não testei porque não entendi... gosto de parar e entender o codigo...Mas irei testar e logo log POSTo o que deu ok!!!!!sobre o que foi comentado e explicandofalou tudo quero selecionar alguns registro por exemplo tipo busca por algoe misturar eles para que não sejam apresentados sempre da mesma formapara não dar prioridade sempre para os mesmos que apareceremquero fazer o mesmo que o comando RAND() no mysql, mas no access não funcionanão consegui pensar em nenhuma forma ate agora... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 dark0 Postado Outubro 21, 2004 Denunciar Share Postado Outubro 21, 2004 heheacho que o modo mais facil, eé você carregar todos os dados da tabela num vetor.. (todos os dados entende-se todos os IDs somente)E depois, trabalhar com vetor. Assim você mistura os dados, e depois sorteia um deles.Parece Simples, né? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 22, 2004 Autor Denunciar Share Postado Outubro 22, 2004 Em um outro fórum me deram uma ideia que por enquanto funcionou d euma forma simplesRandomizeSelect = ... ORDER by rnd(id)e deu certo!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Outubro 22, 2004 Denunciar Share Postado Outubro 22, 2004 hehehe.... e ai beleza.....mais dessa forma. mostrou todos os registros??? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AlexCT Postado Outubro 22, 2004 Autor Denunciar Share Postado Outubro 22, 2004 Mostrou sim... todos os registros já fiz varios testes e esta funcionandoque coisa né... ficquei pensando e claro você me ajudando muitos em varias formase em duas linhas resolviamas faz parteobrigado a todos! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bareta Postado Outubro 22, 2004 Denunciar Share Postado Outubro 22, 2004 é a vida.... hehehe... essa é vantagem do forum..... todo mundo ajudando todo mundo.... ai d nois se não fosse ele!!!!!!!!!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Outubro 13, 2005 Denunciar Share Postado Outubro 13, 2005 testei desse jeito e os dados foram embaralhados, mas sempre ficam na mesma ordem.rídiculo.tem q usar o rnd por fora.....if not rs.eof then arr = rs.getrowsnumSorteado = Cint( rnd * ubound(arr)) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
AlexCT
Queria de uma ajuda
appós eu selecionar itens por um determinado campo
gostaria que ao apresentar eles, fossem apresentados por aleatoriamente, cada vez que a pessoa acessar, aparece-se uma ordem diferente...
valeu
Link para o comentário
Compartilhar em outros sites
22 respostass a esta questão
Posts Recomendados
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.