Ir para conteúdo

POWERED BY:

Arquivado

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

feasso

Escolher aleatóriamente no Banco

Recommended Posts

qual banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT TOP 5 <campo> FROM <tabela> ORDER BY RAND(1000*CampoID)

 

olha este exemplo:

 

<%

'--------------------------------------------------------------
' RANDOM COM REGISTROS DE UM BD SEM REPETIÇÃO
'--------------------------------------------------------------



' Gravamos o Recordset em um Array Bidimensional

Set strRS = Server.CreateObject("ADODB.RecordSet") 

strRS.Open "SELECT * FROM membros ", strConexao, 3, 3

arySub = strRS.getRows()



' Fechamos a conexão pois não usaremos mais

strRS.Close

Set strRS = Nothing

strConexao.Close

Set strConexao = Nothing



Dim TotalReg, TotalNum, vran, x, encontrou, arrGerados(0)

Dim Numreg, verGerado, var_arrGerados, xLoop



Function GeraRegistros(TotalNum) 

 TotalReg=Cint(uBound(arySub,2)) ' Encontramos o Maior Array Gerado

 vran = 1



 For x = 0 To TotalNum-1  ' LOOP de 1 p/ Total solicitado

  encontrou = 1 

  Randomize()   ' Geramos o primeiro Random

  NumReg = Cint((rnd*TotalReg))

   verGerado = Split(var_arrGerados,",") ' Verifica se nº gerado

  For xLoop = LBound(verGerado) To UBound(verGerado) 

   IF Trim(verGerado(xLoop)) = Trim(NumReg) Then 

	'Este "response" comentado abaixo, indica qual número se repetiram

	'E não armazena no Array único, fazendo gerando um novo Random

	'response.write "<b>[ "& verGerado(xLoop) &","& NumReg &" ]</b><br> "

	x = x - 1 

	encontrou = 2 

	Exit For 

   End IF 

  Next

  IF encontrou = 1 Then ' NÃO ENCONTROU, gera o próximo número



   IF vran = 1 Then ' primeiro (Verificar este trecho)

	arrGerados(0) = NumReg 

	vran = 2

   Else 

	arrGerados(0) = arrGerados(0) &","& NumReg 

   End IF

	var_arrGerados = Join(arrGerados)

  End IF

 Next

GeraRegistros = var_arrGerados

End Function

' Array gerado, podemos iniciar a formatação de perguntas 

number = GeraRegistros(3)



verNum = Split(number, ",")

For x = LBound(verNum) to UBound(verNum)

 response.write arySub(0,verNum(x)) &"."

 response.write arySub(1,verNum(x)) &"<br>"

Next

%> 




nesta linha: number = GeraRegistros(3)

O número 3 indica quantos registros você deseja, no caso, serão gerados 3 registros aleatórios diferentes.

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.