Ir para conteúdo

POWERED BY:

Arquivado

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

lucastroy

em que lugar o registro se encontra

Recommended Posts

OLÁ PESSUAL, EU ESTOU TENTANDO MONTAR UMA ROTINA ONDE MOSTRA EM QUE LUGAR O REGISTRO SE ENCONTRA NO BANCO DE DADOS.. SÓ Q NÃO CONSIGO..EU TO FAZENDO O SELECT COM UMA WHERE ID= "ID"DAÍ COMO FAÇO PARA JOGAR NA TELA ASSIM:OLÁ LUCA, VOCÊ ESTÁ EM 18º LUGAR.???ALGUEM SABE AÍ ?? JÁ PROCUREI AQUI NO FORUM MAS NUM ACHO NEM POR DECRETO..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquise por GetRows()... você transforma o resultado de uma consulta com o Recordset em Array.. ai você consegue trabalhar com posições de registrosmas lembrando q no Array o indice começa com ZERO, então basta fazer Contador+1 para exibir 1º ao invés de 0ºfalows

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas lucas que ordenação é essa, será apenas a ordenação do db mesmo ou vai ter algo como pontuações?pois se você colocar a pesquisa pelo id, so retornará um registro, e será o primeiro muito provavelmente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ixi kra, o f*** é q vai ser a colocação de acordo com a quantidade de votos q ele na sua categoria....é q eu to fazendu um concurso de sites, daí quando o kra loga, eu quero mostrar a seguinte msg pra ele:olá "nome",você acumulou "11213" votos e está em 18º lugar da categoria "categoria"...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o q você pode fazer é fazer um SELECT q order de acordo com a pontuação, use o GetRows() para varrer o recordset e encontrar a posição dele...acho q resolveriafalows

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa, fiquei tentando fazer isso durante duas horas só q não consegui... como eu so burro... preciso de ajuda....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP [/tr][tr]

SQL="SELECT * FROM tabela ORDER BY pontuacao DESC"

SET RS = Server.CreateObject("Adodb.recordset")

rs.open sql,conexao,3,3

 

if not rs.eof then

pontuacao = rs.getrows()

end if

rs.close

set rs = nothing

[/tr]

 

aqui você faz um select e salva todos os registros numa array...

 

ASP [/tr][tr]

FOR I=1 TO UBOUND(pontuacao,2)

if pontuacao(1,i) = "dackale" then

response.write "sua posição é " & i & " e você tem tantos pontos " & pontuacao(2,i)

end if

NEXT

[/tr]

 

basicamente é isso.. sendo que

pontuacao(1,i)

o 1 é u numero da coluna por exemplo, vamos dizer que tu tenha as colunas

id nome pontos icq msn

 

id é a coluna 0, nome é a coluna dois e por ae vai

pontuacao(2,i)

 

como citei no exemplo, se pontuação for a terceira coluna então ela é a numero 2 (ja que começa a contar do 0 as colunas)

 

é só mandar fazer um looping e fazer um if e ver se o nick atual do looping bate com o nick do cara (no caso dackale) se sim ele vai dar uma msg falando a posição e a pontuação

 

fiz aqui rapidinho de cabeça essa logica e o sisteminha se alguem ver alguem erro me da um toke, pq nem testei aki..rs

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, muito obrigado pela ajuda mesmo, só q fiquei 1h da minha vida tentando fazer do jeito q você me disse daí dava algumas coisinhas interessantes mas eu nunca chegava ao funcionamento pleno da rotina.. daí eu desisto.. brigadão msm...

Compartilhar este post


Link para o post
Compartilhar em outros sites

kra, muito obrigado pela ajuda mesmo, só q fiquei 1h da minha vida tentando fazer do jeito q você me disse daí dava algumas coisinhas interessantes mas eu nunca chegava ao funcionamento pleno da rotina.. daí eu desisto.. brigadão msm...

velho vai postando ai erros e duvidas qe vamos te ajudando =)Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites
SQL="SELECT Sum(campo_pontos) as Pontuacao, Count(Select ID From tabela Where Sum(Campo_Pontos)<= (Select Sum(campo_pontos) From tabela Where ID_Usuario = "& ID_do_Usuário &") as Posicao FROM tabela Where ID_Usuario = "& ID_do_Usuário &" ;"[/tr]
Veja se essa SQL está retornando corretamente os valores em Pontuacao e Posição

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para isso teria que selecionar todos os registros, não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi que seria um posicionamento tipo "Ranking" e se essa SQL que postei AQUI rolar direito creio que resolveria o problema dele, não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o q você pode fazer é fazer um SELECT q order de acordo com a pontuação, use o GetRows() para varrer o recordset e encontrar a posição dele...

 

acho q resolveria

 

falows

ae tio, o objeto recordset tem uma propriedade chamada AbsolutePosition se nao me engano... q indica a posicao do registro.

daria no mesmo neh?! ou nao?!

 

hasta!

não sabia disso!!! Como não costumo mexer com Recordset (rs.Open.. bla bla bla).. não conheço muito bem das propriedades do danado

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP [/tr][tr]SQL="SELECT Sum(campo_pontos) as Pontuacao, Count(Select ID From tabela Where Sum(Campo_Pontos)<= (Select Sum(campo_pontos) From tabela Where ID_Usuario = "& ID_do_Usuário &") as Posicao FROM tabela Where ID_Usuario = "& ID_do_Usuário &" ;"[/tr]
Veja se essa SQL está retornando corretamente os valores em Pontuacao e Posição
kra, to achando q é isso mesmo... só q o é seria o:

 

as Pontuacao

 

???????????????????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem como você havia escrito assim:

olá "nome",

você acumulou "11213" votos e está em 18º lugar da categoria "categoria"...

Dei nomes que seriam mais fáceis de serem entendidos. Só não prestei atenção direito, Pontuacao = Votos

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha, eu tentei adaptar meu banco de dados ao ultimo código postado e deu erro:

 

olha o q eu fiz aí:

 

<%

strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd/CONCURSO.mdb")

Set conn = Server.CreateObject("ADODB.Connection")

conn.open strCon

 

usuario = "lucastroy"

 

SQL="SELECT Sum(votos) as votos, Count(Select ID From usuarios Where Sum(votos)<= (Select Sum(votos) From tabela Where usuario = "& usuario &") as Posicao FROM usuarios Where usuario = "& usuario &" ;"

 

Set BLOG = Server.CreateObject("ADODB.Recordset")

BLOG.Open sql, conn

 

%>

 

 

deu o seguinte erro:

 

 

Tipo de erro:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] ), ] ou item faltando na expressão de consulta 'Count(Select ID From usuarios Where Sum(votos)<= (Select Sum(votos) From tabela Where usuario = lucastroy) as Posicao FROM usuarios Where usuario = lucastroy ;'.

/xblog/CONCURSO/estudo.asp, line 11

 

a linha 11 é o sql

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo usuário é texto correto? então coloque o valor pesquisado entre ' 'Where usuario = 'lucastroy'[/tr]

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo usuário é texto correto? então coloque o valor pesquisado entre ' '

ASP [/tr][tr]Where usuario = 'lucastroy'[/tr]
ixi kra, deu o mesmo erro q antes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trocou nos 2 WHERE?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trocou nos 2 WHERE?

sim troquei...ficou assim:<%strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd/CONCURSO.mdb")Set conn = Server.CreateObject("ADODB.Connection")conn.open strConusuario = lucastroySQL="SELECT Sum(votos) as votos, Count(Select ID From usuarios Where Sum(votos)<= (Select Sum(votos) From tabela Where usuario = 'lucastroy') as Posicao FROM usuarios Where usuario = 'lucastroy' ;"Set BLOG = Server.CreateObject("ADODB.Recordset")BLOG.Open sql, conn%>e o erro é o mesmo..

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.