Ir para conteúdo
Fórum Script Brasil
  • 0

Após Selecionar Registro, Apresentar Sem Ordem


AlexCT

Pergunta

22 respostass a esta questão

Posts Recomendados

  • 0

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 ..

Link para o comentário
Compartilhar em outros sites

  • 0
estou precisando ranzomiza o já selecionado

Hanh?

Randomizar o que já está selecionado?

Se já tá selecionado, como vai randomizar? rolleyes.gif

Tipo.. não entendi agora.. se já selecionou o registro, vai randomizar o que?

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

o codigo no qual me referi, seria este que bareta postou .. assim como devem ter mais codigos desses postados aqui na sb ..

Link para o comentário
Compartilhar em outros sites

  • 0
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
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Barreta

pode me dar uma ajuda

pois tentei entender o código e fiquei meio perdido

COLOQUEI EM MAIUSCULA E NEGRITO PARA FACILITAR

<%

sql="select * from tabela where condicao='"& variavel &"'"

set rs=conn.execute(sql)

id=""

DO WHILE NOT RS.EOF

id=id & rs("id")&"."  PORQUE?

RS.MoveNext

LOOP

rs.close

set rs=nothing

id=id

total = 1

cod=""

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?

Next

sql="select * from tabela where id="& cod &""

set rs=conn.execute(sql)

response.write rs("item")

rs.close

%>

Ficarei muito grato, estou precisando muito dessa ajuda

porque paraMYSQL, tem o comando RAND(), não tem nada semelhante para Access

Link para o comentário
Compartilhar em outros sites

  • 0

o codigo que o bareta postou funcionou?

<%

'seleciona os dados do banco

sql="select * from tabela where condicao='"& variavel &"'"

'executa o sql, armazenando o resultado do select em RS

set rs=conn.execute(sql)

'inicializa o ID

id=""

'começa o loop, passando por todo o RS, que contem o resultado do  SELECT no banco

DO 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 IDs

id=id & rs("id")&"."

'vamos para o proximo registro da tabela

RS.MoveNext

'define o fim do while

LOOP

'fecha o RS

rs.close

set rs=nothing

'inicializa variaveis auxiliares

id=id

total = 1

cod=""

'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 arraybareta

Arraybareta = Split(id, ".")

'embaralha todo o array

Randomize()

'agora, após embaralhar os valores, sorteia aleatoriamente eles, para não ser repetido

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

%>

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+

Link para o comentário
Compartilhar em outros sites

  • 0

pegando a explicação do dark e adicionando alguns dados em vermelho.

<%

'seleciona os dados do banco

sql="select * from tabela where condicao='"& variavel &"'"

'executa o sql, armazenando o resultado do select em RS

set rs=conn.execute(sql)

'inicializa o ID

cont_id=0

id=""

'começa o loop, passando por todo o RS, que contem o resultado do  SELECT no banco

DO 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 IDs

cont_id=cont_id+1

id=id & rs("id")&"."

'vamos para o proximo registro da tabela

RS.MoveNext

'define o fim do while

LOOP

'fecha o RS

rs.close

set rs=nothing

'inicializa variaveis auxiliares

id=id

total = cont_id

cod=""

'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 arraybareta

Arraybareta = Split(id, ".")

'embaralha todo o array

Randomize()

'agora, após embaralhar os valores, sorteia aleatoriamente eles, para não ser repetido

sorteio = 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.close

set rs=nothing

Next

rs.close

%>

Editado por bareta
Link para o comentário
Compartilhar em outros sites

  • 0

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 explicando

falou tudo quero selecionar alguns registro por exemplo tipo busca por algo

e misturar eles para que não sejam apresentados sempre da mesma forma

para não dar prioridade sempre para os mesmos que aparecerem

quero fazer o mesmo que o comando RAND() no mysql, mas no access não funciona

não consegui pensar em nenhuma forma ate agora...

Link para o comentário
Compartilhar em outros sites

  • 0

hehe

acho 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é?

Link para o comentário
Compartilhar em outros sites

  • 0

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.getrows

numSorteado = Cint( rnd * ubound(arr))

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...