Ir para conteúdo

POWERED BY:

Arquivado

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

bydumoraes

random

Recommended Posts

Um amigo nosso aki do forum - o Guardiao - postou um sistema de random muiiiiiiiiiiito bom , mas eu queria que mostrasse somente 5 registros mas naum consigo alterar no codigo que mostra todos os registros de uma vez em random... abaixo segue o codigo se alguem puder me ajudar.... ou melhor nos ajudar pois acho que tem muitos querendo aprender isto...Code:<%Response.expires = 0Response.Buffer=TrueSet strConexao = Server.CreateObject("ADODB.Connection")strConexao.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("banco.mdb")'-------------------------------------------------------------- ' RANDOM COM REGISTROS DE UM BD SEM REPETIÇÃO ' Autor: Márcio J. Lima (Guardião)' Existe alterações nesta FUNÇÃO, by Pacola' Data de criação: 22-08-2002 - SP / Brasil '-------------------------------------------------------------- Conta = "SELECT COUNT(id) AS total FROM tabtudo" 'aqui vem a select countSet Ls = strConexao.Execute(Conta)totalNumber = Ls("total")' Gravamos o Recordset em um Array Bidimensional Set strRS = Server.CreateObject("ADODB.RecordSet") strRS.Open "SELECT * FROM tabtudo", strConexao, 3, 3 ' outra selectarySub = 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(totalNumber) verNum = Split(number, ",") 'aqui vamos imprimiry = 0For x = LBound(verNum) to UBound(verNum) response.write arySub(0,verNum(x))y = y + 1Next%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já peguei uma paginaão quase identica, modifiquei um SELECT e funcionou.Na linha 18, acredito que substituindo o SELECT funcione:

strRS.Open "SELECT TOP 5 *  FROM tabtudo", strConexao, 3, 3 ' outra select

;)

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.