Ir para conteúdo

POWERED BY:

Arquivado

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

producer

Registros Aleatórios

Recommended Posts

Ola...eu tenho uma tabela com Nome/Classificacao...Classificacao tem 1, 2, 3Sendo 3 mais importante...Eu quero exibir Registros Aleatóriamente dessa tabela..Porem quero exibir TODOS os 1 primeiro...depois os 2...depois os 3....mas os 1 entre eles aleatorios..os 2 entre eles aleatorios..e assim por diante....ou seja, em grupos..como fazer?Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

randomize

x=0

set rs1 = conn.execute("select * from table where Classificacao=1")

while not x = rs1.recorcount

id_sorteio=(rnd*rs1.recordcount)

response.write rs1.moveabsolut(id_sorteio)

x=x+1

wend

Creio ser isso você repete para cada valor de classificaçção que queira exibir.

Não testei qq erro posta ai

Valeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

strSQL = "SELECT UF,Cidade,Bairro,NomeFantasia,TipoPlano,Codigo,Email,Site FROM CadastroHotel WHERE "strSQL = strSQL & " UF LIKE '%" & Estado & "%' AND"strSQL = strSQL & " Cidade LIKE '%" & Cidade & "%'"if Bairro <> "" then strSQL = strSQL & " AND Bairro LIKE '" & Bairro & "'"if NomeFantasia <> "" then strSQL = strSQL & " AND NomeFantasia LIKE '" & NomeFantasia & "'"strSQL = strSQL & "order BY TipoPlano"

esse é o atual codigo..depois dois if TipoPlano = 1 then blblblblblblblblblelse lblblblblblEntendeu?Aquele seu codigo nao consegui implementar.Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok você ordenou pelo "tipoplano" que entendo como sendo no caso o classificação de seu exemplo.

você já está mostrando todos esses dados na tela de forma ordenada?

Caso esteja poste o cód nesse ponto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

if TipoPlano = 1 then blblblblblblblblblelse lblblblblblcomo eu disse, eu mostro tudo ordenado..primeiro mostro if=1depois if=2...etc...mas queria alem de ordenar 1, 2, 3q entre eles..11111 222222fosse rand.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo então vamos tentar:
randomize
for x=1 to 3
 sql2="Select from CadastroHotel where TipoPlano= "&x
 set rs = Server.CreateObject("ADODB.RecordSet")
 rs.open(sql2)
 y=0
 while not y=rs.recodcount
   id_sorteio=(rnd*rs1.recordcount)
   rs.Move(id_sorteio,0)
   response.write rs.("oqvc quiser")
   y=y+1
 wend
 rs.close
 set rs = nothing
next

Verifica se é isso mesmo. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado..!!! Acho que não estou passando direito a informaão B) hehehe..é o seguinte...tenho um cadastro de hoteis...NIVEL 1 Hoteis PagosNIVEL 2 Hoteis Pagos porem com menos destaque...NIVEL 3 Hoteis Grátis...Eu uso um codigo que seleciona TODOS os hoteis...e exibe todos os "1" coloridos...em seguida vem os "2" sem cor...e por fim os "3" somente listados bem simples...pra isso isso aquilo que te passei: if = 1 talelseif = 2 talelse (3) tal...Porem o que quero é que sempre venha aleatórios os 1,2,3...Logico que os 1 vao vir primeiro..depois os 2..depois os 3...mas o que quero é entre elesque venha diferente...por exemplo tenho hotel A, B e C no 1...uma hora vem: A B C...a outra B C A, outra A C B... e assim por diante..Entendeu?Posso passar o codigo todo do script pro seu email? acho que assim ficamais facil pra você me ajudar.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi o q você quer, pode mandar q dou uma olhada, e te retorno.

salgadoasfalf@ibest.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar te passar a ideia, sem código por enquanto.

você faz o seguinte:

x=0

while rs1.("TipoPlano")=1

plano1(x)=rs("id")

rs.movenext

wend

x=0

while rs2.("TipoPlano")=2

plano2(x)=rs("id")

rs.movenext

wend

x=0

while rs3.("TipoPlano")=3

plano3(x)=rs("id")

rs.movenext

wend

contar o total em cada matrix e dar o valor do maximo para uma var, tipo maximo

randomize

for y = 0 to contar o total de registros de seu bd

x=cint((rnd*maximo))

varre a matrix mostrou() para ver se x sa foi mostrrado

se já faz outro, se não faz

mostrou(y)=x

aqui você faz um if para cada plano, para ver se é o valor máximo da matrix, se for não mostra, se não mostra.

next

 

Basicamente é isso, vou dar uma pensada em como montar esse cód, se for possível posto aqui.

 

Valeu? :D

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.