1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Random ASP

Discussão em 'Programação' iniciada por ti17, 5 de Maio de 2009. (Respostas: 4; Visualizações: 1607)

  1. ti17

    ti17 Power Member

    Boas, queria saber como faço para sortear um registo de uma base de dados.

    Estou a fazer uma página em ASP.
    Podem ver a página aqui http://joaofvr.ti400.net

    Na minha página inicial, começa a mostrar coisas da base de dados, mas eu não quero que sejam sempre as mesmas. gostava que sempre que fosse a página, ela sorteava um registo da base de dados e ponha lá.
    É este o meu problema.
    Espero me ter explicado bem.

    Obrigado e cumprimentos
     
  2. AliFromCairo

    AliFromCairo Power Member

    Uma vez que não forneces muita informação acerca do problema, vou assumir que estás a usar o SQL Server, e pretendes obter um registo aleatório de uma tabela. Para tal, podes utilizar o seguinte:

    Código:
    SELECT TOP 1 * FROM tabela
    ORDER BY NEWID()
    
    Caso utilizes MySQL, basta utilizares a função RANDOM() ao invés de NEWID(). Nota também que isto não é a maneira mais eficiente de se obter um registo aleatório, mas é sem dúvida a mais simples de implementar. No entanto, os problemas de performance só deverão ser considerados se tiveres um número elevado de registos na tabela (>> 100000).

    Espero que ajude.
     
  3. ti17

    ti17 Power Member

    Nãofunciona, estou a utilizar o access, e o sql do access não tem essa função.

    Não sabes outra maneira??
     
  4. iznougud

    iznougud I quit My Job for Folding

    Fazes um query a tabela para te devolver todos os IDs que existem e guardas num array.

    Vês quantos valores tem o array.

    Geras um numero aleatorio entre 0 e num_valores_array - 1 (vê aqui como fazer: http://www.asp101.com/samples/viewasp.asp?file=random_number.asp)

    Fazes a pesquisa pelo registo com o ID que esta na posicao do numero aleatorio que obtiveste.


    Se os IDs forem todos consecutivos podes simplificar o codigo um bocado mas acho que assim tens uma solução mais genérica e que funciona sempre independentemente da base de dados que usas.
     
  5. ti17

    ti17 Power Member

    obrigado ja funcionou. :)
     

Partilhar esta Página