Ir para conteúdo

POWERED BY:

Arquivado

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

Christiano Nunes

[Resolvido] Ranking com paginação

Recommended Posts

Opa galerinha, mais uma pra vcs.. to apanhando viu.. aff

Acessem a página onde estou cm problemas:

www.copawe.com.br

 

perceba q é um ranking e atualmente vai até o nº 190..

A principio está tudo normal.. se você clicar na paginacao la em baixo na pagina 2.. vai tranquilo.. o ranking funciona perfeito..

mas se tipo você for pra pagina 2.. e dpois voltar pra página inicial.. o ranking continua aumentando, e no entanto ele teria q voltar

para o nº1 e tal..

 

Com certeza dve ta faltando alguma coisa na paginacao.. entao, vai o codigo somente da paginacao:

STRi2 é o request q pega o numero do ranking

 

<%

 Response.Write("<B><font color=""#000000""><strong> Página " & PagAtual & " de " & TotalPages & " </strong></font></B> - ")   

IF PagAtual > 1 THEN 

'Se for a primeira página, Mostra apenas o botão Próximo e Ultima
	  Response.Write("<B><font color=""#000000"">") 
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" &  1 & "'>")
	  Response.Write("<img src=imagens/gif/atras_2.gif border=0>") 
	  Response.Write("</a></font></B>  ")
	  
	  Response.Write("<B><font color=""#000000"">") 
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("<img src=imagens/gif/atras.gif border=0>") 
	  Response.Write("</a></font></B>  ")

	 Response.Write("<B><font color=""#000000"">") 
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("<img src=imagens/gif/atras.gif border=0>") 
	  Response.Write("</a></font></B>  ")


  Else

	  Response.Write("<B><font color=""#000000"" size=""2"" face=""Arial"">") 
	  Response.Write("<img src=imagens/gif/atras_2.gif border=0>") 
	  Response.Write("</font></B>  ")

	  Response.Write("<B><font color=""#000000"" size=""2"" face=""Arial"">") 
	  Response.Write("<img src=imagens/gif/atras.gif border=0>") 
	  Response.Write("</font></B>  ")


End If

'------------------- numero -------------------------
'---------- Numero de numeros para ser mostrados ----
max_n_mostrados = 9

intervalo = Int(max_n_mostrados /2)
inicio = PagAtual - intervalo
final = PagAtual + intervalo

If CInt(inicio) <1 Then 
 inicio = 1
 final = 10
END IF
If CInt(final) > CInt(TotalPages) Then final = TotalPages

For i = inicio To final
	 If CInt(i)=CInt(PagAtual) Then
		 Response.Write "<font color=""#000000"">[ <B>" & i & "</B> <font color=""#000000"">]</font>  "
	 END IF
	 If CInt(i) < CInt(PagAtual) Then
	  Response.Write "<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & i & "'>" & i & "</a>  "
	 END IF
	 If CInt(i) > CInt(PagAtual) Then
		 Response.Write "<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & i & "'>" & i & "</a>  "
  END IF
Next

'------------------------------------------------------

IF CInt(PagAtual) <> CInt(TotalPages) THEN 

'Se estiver na última página, mostra apenas o botão Anterior e Primeira

	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & PagAtual + 1 & "'>")
	  Response.Write("<img src=imagens/gif/frente.gif border=0>")
	  Response.Write("</a></font></B>  ") 

	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & TotalPages & "'>")
	  Response.Write("<img src=imagens/gif/frente_2.gif border=0>")
	  Response.Write("</a></font></B>  ")		

 Else
	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<img src=imagens/gif/frente.gif border=0>") 
	  Response.Write("</font></B>  ")

	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<img src=imagens/gif/frente_2.gif border=0>") 
	  Response.Write("</font></B>  ")
End If 

%>

E ae alguem consegue me dar uma solução????

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde voce armazena a posicao inicial? é com session?

Compartilhar este post


Link para o post
Compartilhar em outros sites

um vi que voce passa a variavel stri2 pela url

 

nao precisa disso

 

voce pode e deve calcular a posição inicial

 

ela será, ja que usa 50 por pagina, igual a

 

PosicaoInicial = 1 + (PaginaAtual - 1) * 50

Compartilhar este post


Link para o post
Compartilhar em outros sites

um vi que voce passa a variavel stri2 pela url

 

nao precisa disso

 

voce pode e deve calcular a posição inicial

 

ela será, ja que usa 50 por pagina, igual a

 

PosicaoInicial = 1 + (PaginaAtual - 1) * 50

Entendi nao kra..

vou postar o codigo completo.. ai você me diz onde dvo colocar isso aí.

perae..

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que nao entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

CÓDIGO COMPLETO:

inicio

<%
'****************************************
' RANKING - PONTOS
'****************************************
PagAtual = Request.QueryString("PagAtual") 'página atual
i2 = Request.QueryString("stri2")

Set RS = Server.CreateObject("ADODB.Recordset")
RS.CursorLocation = 3
RS.Open "SELECT pontos, cod_usuario,  nome, sobrenome FROM usuario order by pontos desc, cod_usuario asc", ConexaoBanco

If RS.Eof Then 
response.Write "-"
else

If not RS.EOF then RS.MoveFirst
%>

<%

SELECT CASE np
CASE "1" NumPorPage = "1"
CASE "15" NumPorPage = "15"
CASE ELSE NumPorPage = "5"
END SELECT
NumPorPage = 50

'Verifica qual a página solicitada
Dim PagAtual

IF Request.QueryString("PagAtual") = "" Then
PagAtual = 1 'Primeira página
Else
PagAtual = Request.QueryString("PagAtual")
End If

IF Request.QueryString("stri2") = "" Then
i2 = 1
Else
i2 = Request.QueryString("stri2")
End If

RS.CacheSize = NumPorPage 'Define o tamanho do Cache = para o número de registros

RS.MoveFirst 'Move o RecorSet para o início 
RS.PageSize = NumPorPage 'Coloca a quantidade de páginas

Dim TotalPages 'Pega o número total de páginas
TotalPages = RS.PageCount

RS.AbsolutePage = PagAtual 'Configura a página atual

%>

HTML BASICO

<div id="teste">
					<table width="100%" border="0" cellspacing="0" cellpadding="0">
					  <tr>
						<td colspan="4" scope="row">Procurar JOGADOR nesta página: <input name="busca" type="text" class="TEXTO_VERDE1" size="25" />
						<input type="button" onClick="doDestacaTextoBusca(document.getElementById('busca').value, teste)" value="Destacar" /></td>
						</tr>
					  <tr>
						<td colspan="4" scope="row"> </td>
					  </tr>
					  <tr>
						<td width="9%" bgcolor="#CCCCCC" class="texto_classificacao" scope="row"> </td>
						<td width="20%" bgcolor="#CCCCCC" class="texto_classificacao" scope="row">PONTOS</td>
						<td width="31%" bgcolor="#CCCCCC" class="texto_classificacao" scope="row">JOGADOR</td>
						<td width="40%" bgcolor="#CCCCCC" class="texto_classificacao" scope="row">NOME</td>
					  </tr>

Mais ASP

<%
'i2 = 1
Count = 0 'Zera o contador
i = 0

Do while Not RS.EOF and i2 <=1000 And Count < RS.PageSize

if i2 = 01 or i2 = 02 or i2 = 03 then
corpontos = "red"
else
corpontos = "black"
end if
%>

html

<tr>
						<td scope="row" class="texto_classificacao" style="BORDER-BOTTOM: #eaeaea 1pt solid"><% Response.Write (i2) %>
						  º</td>
						<th align="left" style="BORDER-RIGHT: #eaeaea 1pt solid; BORDER-LEFT: #eaeaea 1pt solid; BORDER-BOTTOM: #eaeaea 1pt solid" scope="row"><%=RS("pontos")%></th>
						<td scope="row" style="BORDER-BOTTOM: #eaeaea 1pt solid"><font color="<%=corpontos%>"><%=RS("nomewe")%></font></td>
						<td scope="row" style="BORDER-BOTTOM: #eaeaea 1pt solid"><font color="<%=corpontos%>"><%=RS("nome")%> <%=RS("sobrenome")%></font></td>
					  </tr>

ASP

<%

i = i+1
Count = Count + 1
i2 = i2 + 1
RS.MoveNext

loop 
%>

HTML fechando as tabelas

</table>				 
					</div>
					 </th>
			  </tr>
			  <tr>
				<th align="right" valign="top" scope="row" bgcolor="#90EE90">

A PAGINAÇÃO Q POSTEI

<%

Response.Write("<B><font color=""#000000""><strong> Página " & PagAtual & " de " & TotalPages & " </strong></font></B> - ")   

IF PagAtual > 1 THEN 

'Se for a primeira página, Mostra apenas o botão Próximo e Ultima
	  Response.Write("<B><font color=""#000000"">") 
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" &  1 & "'>")
	  Response.Write("<img src=imagens/gif/atras_2.gif border=0>") 
	  Response.Write("</a></font></B>  ")
	  
	  Response.Write("<B><font color=""#000000"">") 
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("<img src=imagens/gif/atras.gif border=0>") 
	  Response.Write("</a></font></B>  ")

	 Response.Write("<B><font color=""#000000"">") 
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("<img src=imagens/gif/atras.gif border=0>") 
	  Response.Write("</a></font></B>  ")


  Else

	  Response.Write("<B><font color=""#000000"" size=""2"" face=""Arial"">") 
	  Response.Write("<img src=imagens/gif/atras_2.gif border=0>") 
	  Response.Write("</font></B>  ")

	  Response.Write("<B><font color=""#000000"" size=""2"" face=""Arial"">") 
	  Response.Write("<img src=imagens/gif/atras.gif border=0>") 
	  Response.Write("</font></B>  ")


End If

'------------------- numero -------------------------
'---------- Numero de numeros para ser mostrados ----
max_n_mostrados = 9

intervalo = Int(max_n_mostrados /2)
inicio = PagAtual - intervalo
final = PagAtual + intervalo

If CInt(inicio) <1 Then 
inicio = 1
final = 10
END IF
If CInt(final) > CInt(TotalPages) Then final = TotalPages

For i = inicio To final
	 If CInt(i)=CInt(PagAtual) Then
		 Response.Write "<font color=""#000000"">[ <B>" & i & "</B> <font color=""#000000"">]</font>  "
	 END IF
	 If CInt(i) < CInt(PagAtual) Then
	  Response.Write "<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & i & "'>" & i & "</a>  "
	 END IF
	 If CInt(i) > CInt(PagAtual) Then
		 Response.Write "<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & i & "'>" & i & "</a>  "
  END IF
Next

'------------------------------------------------------

IF CInt(PagAtual) <> CInt(TotalPages) THEN 

'Se estiver na última página, mostra apenas o botão Anterior e Primeira

	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & PagAtual + 1 & "'>")
	  Response.Write("<img src=imagens/gif/frente.gif border=0>")
	  Response.Write("</a></font></B>  ") 

	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<a href='menu_ranking_geral.asp?online="& coding(online) &"&arquivo=menu_ranking_geral&stri2="& i2 &"&PagAtual=" & TotalPages & "'>")
	  Response.Write("<img src=imagens/gif/frente_2.gif border=0>")
	  Response.Write("</a></font></B>  ")		

Else
	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<img src=imagens/gif/frente.gif border=0>") 
	  Response.Write("</font></B>  ")

	  Response.Write("<B><font color=""#000000"">")
	  Response.Write("<img src=imagens/gif/frente_2.gif border=0>") 
	  Response.Write("</font></B>  ")
End If 

%>

CONCLUINDO TUDO

</th>
			  </tr>
			  <tr>
				<th align="center" valign="top" scope="row">
<% 
end if 

RS.close
set RS=nothing
'****************************************
' RANKING PONTOS - FIM
'****************************************
%>

 

TA AÍ TUDO!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente o que disse

 

Defina a pagina

 

em vez de

PagAtual = Request.QueryString("PagAtual") 'página atual

Faça

 

PagAtual = Request.QueryString("PagAtual") 'página atual
IF PagAtual = "" THEN
PagAtual = 1
ELSE
PagAtual = CINT(PagAtual)
END IF

Nao precisa de

 

i2 = Request.QueryString("stri2")

E sim de

 

i2 = 1 + (PagAtual - 1) * 50

Nao precisa da referencia em nenhum link de paginação

 

stri2="& i2 &

Faça isso e volte com o resultado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok entao

 

Abraços

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.