Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Moreira

[Resolvido] Paginação MYSQL - Peguei do Laboratorio de Scripts

Recommended Posts

Ola pessoal nao aguento mais procurar paginação MYSQL na net nao encontra nenhuma legal.

 

Essa abaixo peguei no lab de scripts vejam pra mim esta dando esse erro na linha 17

 

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis

line 17

 

Eis o codigo

 

<%
' Abre a Conexão com o Banco de Dados
Set Conexao = Server.CreateObject("ADODB.Connection")
Conexao.ConnectionString = "DRIVER={MySQL ODBC 3.51 DRIVER};SERVER=127.0.0.1;DATABASE=loja1;UID=root;PWD=root;"
Conexao.Open

' Select para obter o total de registros da tabela
Set rs = Conexao.Execute("SELECT COUNT(id) As total_registros FROM administrador")
total_registros = rs("total_registros")
rs.Close
Set rs = Nothing

' Variával com o total de registros listados por página.
registros_pg = 10

' Obtem o número total de paginas.
total_paginas = total_registros / registros_pg
If (Instr(total_paginas, ",") > 0) Then total_paginas = Int(total_paginas + 1)

' Verifica a página atual
pagina = Request.QueryString("pagina")
If (Not IsNumeric(pagina)) Then
pagina = 1
ElseIf IsEmpty(pagina) Or pagina < 1 Then
pagina = 1
ElseIf Int(pagina) > Int(total_paginas) Then
pagina = Int(total_paginas)
End If

' Pega o número do primeiro registro a obter na sql
reg_inicio = pagina * registros_pg - registros_pg

' SQL para pegar os registros.
Set rs = Conexao.Execute("SELECT * FROM administrador ORDER BY id DESC LIMIT "& reg_inicio &", "& registros_pg &"")
If rs.EOF Then
Response.Write "Nenhum registros encontrado"
Else
While Not rs.EOF
 Response.Write "Registro nº: "& rs("id") &"<br>" & VbCrLf
 rs.MoveNext
Wend
End If
rs.Close
Set rs = Nothing

Response.Write "<hr>"

' Fecha a conexão com o banco de dados
Conexao.Close
Set Conexao = Nothing

'INÍCIO DOS LINKS DA PAGINAÇÃO.
If Int(total_paginas) > 1 Then
Response.Write "<b>Páginas:</b> "

' Aqui você define quantos links mostrará antes e depois da pagina atual.
links = 5

' Aqui é criado os links antes da página atual.
For i = (pagina - links) To (pagina - 1)
 If i > 0 Then
  Response.Write " <a href='?pagina="& i &"'>"& i &"</a> "
 End If
Next

'Imprime o número da página atual
Response.Write " <b>"& pagina &"</b> "

' Aqui é criado os links após a página atual.
For i = (pagina + 1) To (pagina + links)
 If i > total_paginas Then Exit For
 Response.Write " <a href='?pagina="& i &"'>"& i &"</a> "
Next
End If
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adaptei assim Jonathan dj

 

mas esta dando erro na linha 90 o erro é este:

Active Server Pages, ASP 0116 (0x80004005)

O bloco de script não possui a marca de término de script (%>).

/teste5.asp, line 90

 

contem isso na linha 90

<%

'################## paginacao 01 #####################

 

nada de mais neh

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

'Efetuando conexão com o banco de dados
function abre_conexao1(ConnString,Conn)

'ConnString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\websites\badulakefestas.com.br\private\db\dados.mdb;" 
ConnString="Driver=MySQL ODBC 3.51 Driver;DATABASE=loja1;SERVER=127.0.0.1;UID=root;PASSWORD=root;"
set Conn=server.createobject("ADODB.Connection") 
Conn.open ConnString 
end function 

sub fecha_conexao1() 
Conn.close 
Set Conn = Nothing 
end sub

Call abre_conexao1(ConnString,Conn)


'Set RS= Server.CreateObject("ADODB.Recordset") 'acrescentei por causa da paginação
SQL = "SELECT * FROM administrador"
Set RS = Conn.Execute(SQL)


'############## paginacao Introdução  #################

'------- Coloque aqui a quantidade de registros que você deseja por página --------

Const NumPorPage = 20

'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

   'Cria conexão com o Banco de Dados, já abrir anteriormente
   'Criado anteriormente Set RS = Server.CreateObject("ADODB.Recordset")
   '>>> FIZ EM CIMA RS.CursorLocation = 3		Acerta a posição do cursor . 3 ou adUseClient
  
   RS.CacheSize = NumPorPage 'Define o tamanho do Cache = para o número de registros

   'Cria a String SQL
   '>>> FIZ EM CIMA Dim SQLpag
   '>>> FIZ EM CIMA SQLpag = "SELECT * FROM jogos"
   '>>> FIZ EM CIMA RS.Open SQLpag, Conn	Abre o RecordSet


	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

'############## paginacao Introdução  - FIM #################


Count = 0	   'Zera o contador
   
'Inicia a Função DO, utilizando a quantidade de páginas especificadas
'Ou seja ele irá executar a ação até que o valor Count seja menor que "20" como está no nosso exemplo
 
i = 0 

DO WHILE NOT RS.EOF And Count < RS.PageSize  'paginacao And Count < RS.PageSize 

' ----- linhas coloridas -------
if i mod 2<>0 then
cor = "#F4F4F4"

else
cor = "#e1e1e1"
end if 
'-------------------------------

%>
<%=RS("nome")%>
<%
	i = i+1
 Count = Count + 1   'paginacao
	RS.MoveNext
	LOOP				'tb paginacao
%>
<%
'################## paginacao 01 #####################

 'Coloca o Nº página atual / Nº Total de páginas

 Response.Write("<B><font color=""#006600"" size=""2"" face=""Arial""><strong> Página " & PagAtual & " de " & TotalPages & " </strong></font></B> - ")   

'Mostra os botões: Anterior e Próxima, utilizando da opção de IF 

IF PagAtual > 1 THEN 

'Se for a primeira página, Mostra apenas o botão Próximo e Ultima
	  Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">") 
	  Response.Write("<a href='jogos.asp?PagAtual=" &  1 & "'>")
	  Response.Write("Primeira") 
	  Response.Write("</a></font></B>  ")
	  
	  Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
	  Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("Anterior") 
	  Response.Write("</a></font></B>  ")

	 Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
	  Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("Anterior") 
	  Response.Write("</a></font></B>  ")


  Else

	  Response.Write("<B><font color=""#EEEEEE"" size=""1"" face=""Arial"">") 
	  Response.Write("Primeira") 
	  Response.Write("</font></B>  ")

	  Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">") 
	  Response.Write("Anterior") 
	  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=""#660066"" size=""1"" face=""Arial"">[ <B>" & i & "</B> <font color=""#660066"">]</font>  "
	 END IF
	 If CInt(i) < CInt(PagAtual) Then
	  Response.Write "<a href='jogos.asp?PagAtual=" & i & "'>" & i & "</a>  "
	 END IF
	 If CInt(i) > CInt(PagAtual) Then
		 Response.Write "<a href='jogos.asp?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=""#660066"" size=""2"" face=""Arial"">")
	  Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual + 1 & "'>")
	  Response.Write("Próxima")
	  Response.Write("</a></font></B>  ") 

	  Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">")
	  Response.Write("<a href='jogos.asp?PagAtual=" & TotalPages & "'>")
	  Response.Write("Ultima")
	  Response.Write("</a></font></B>  ")		

 Else
	  Response.Write("<B><font color=""#CCCCCC"" size=""2"" face=""Arial"">")
	  Response.Write("Próxima") 
	  Response.Write("</font></B>  ")

	  Response.Write("<B><font color=""#EEEEEE"" size=""1"" face=""Arial"">")
	  Response.Write("Ultima") 
	  Response.Write("</font></B>  ")
End If 
'################## fim paginacao 01 ########################

'############## paginacao 02 ####################
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'@@@@@@@ ALEX TEIXEIRA - alexct@hotmail.com @@@@@@
'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 'Coloca o Nº página atual / Nº Total de páginas

 Response.Write("<B><font color=""#006600"" size=""2"" face=""Arial""><strong> Página " & PagAtual & " de " & TotalPages & " </strong></font></B> - ")   

'Mostra os botões: Anterior e Próximo, utilizando da opção de IF 

'----------- Numeros - Calculos ---------------------------------------------

var01 = Len(PagAtual) 'Lê o tamanho do numero
var02 = var01 - 1 'subtrai um da variavel , retirando o digito menos sig.
var03 = Left(PagAtual,var02) 'obtem os digitos mais  sig. do numero
var04 = Right(PagAtual,1)	'obtem o digito menos sig. do numero
var05 = var03 & 0 ' Acrecenta ZERO no final
IF var04 <> 0 THEN		' condição se o digito menos sig. é Zero
	inicial = var05 + 1
	final = inicial + 9  
	ELSE
	inicial = var05 - 9  
	final = var05
END IF

indice_i = var04 - 1 'ultimo digito  - 1
indice_f = 10 - var04 ' 10 - digito menos sig.


' If CInt(inicial) < 1 Then inicial = 1
	 
If CInt(final) > CInt(TotalPages) Then final = TotalPages

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


IF PagAtual > 1 THEN 

'Se for a primeira página, Mostra apenas o botão Próximo e Ultima
	  Response.Write("<B><font color=""#660066"" size=""1"" face=""Arial"">") 
	  Response.Write("<a href='jogos.asp?PagAtual=" &  1 & "'>")
	  Response.Write("Primeira") 
	  Response.Write("</a></font></B>  ")
	  
	  Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
	  Response.Write("<a href='jogos.asp?PagAtual=" & PagAtual - 1 & "'>")
	  Response.Write("Anterior") 
	  Response.Write("</a></font></B>  ")

	  IF PagAtual > 10 THEN

	   Response.Write("<B><font color=""#660066"" size=""2"" face=""Arial"">") 
	   Response.Write("<a href='jogos.asp?PagAtual=" & inic`? ?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

está faltando código e o erro é porque não fechaste o bloco script asp. reveja calmamente o link que te passei e siga passo a passo como montar, garanto que funciona pois uso exatamente essa que tem no forum

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei certinho agora

 

esta dando esse erro agora

 

ADODB.Recordset (0x800A0CB3)

O conjunto de registros atual não oferece suporte para indicadores. Isso pode ser uma limitação do provedor ou do tipo de cursor selecionado.

/1.asp, line 52

 

contem isso na linha

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

você fez isso

'>>> FIZ EM CIMA RS.CursorLocation = 3 Acerta a posição do cursor . 3 ou adUseClient

 

faça o mesmo na conexão

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte Johnatahn montei uma PAGINAÇÃO PRA MIM ESTA RODANDO CERTINHO!!!

 

Libera no laboratório de SCRIPT pra galera

 

PAGINAÇÃO PARA MYSQL

 

<%

 

ConnString="Driver=MySQL ODBC 3.51 Driver;DATABASE=nome;SERVER=localhost;UID=root;PASSWORD=root;"

set Conn=server.createobject("ADODB.Connection")

Conn.open ConnString

 

'Definição de Variáveis

Dim Conn

Dim RS

Dim sql

Dim Pag

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

'Controles de Paginação

pag = Request.QueryString("pag")

 

If pag = "" Then

pag = 1

End if

 

 

Conn.CursorLocation = 3 '<- Cursor de conexão

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

'Criação de RecordSet

Set RS = Server.CreateObject("ADODB.RecordSet")

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

'Conexão Ativa

Set RS.ActiveConnection = Conn

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

'Select na tabela do banco

sql = "SELECT * FROM TABELA"

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

RS.CursorType = 3 'Tipo do cursor do RecordSet

RS.PageSize = 10 'Qtde de registros a serem exibidos

RS.Open sql '<- Executa o Select

TotalPages = RS.Pagecount

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

'Se nao existir dados cadastrados

 

%>

<%

If RS.Eof Then

%>

Nenhum registro

<%

Else

%>

<%

RS.AbsolutePage = pag

'Tazemos todos os dados da tabela

While Not RS.Eof and i < RS.PageSize

i = i + 1

%>

<%= RS("campo") %>

<%

RS.MoveNext

Wend

'End If

%><%

pagina = Request.ServerVariables("Script_Name")

 

 

' cria os links de pagians...

IF CInt(pag) > 1 THEN

%> <%

Response.Write "<a href='"&pagina&"?p=1'>Primeira</a> | "

%> <%

Else

Response.Write "<font color=""#ADADAD"">Primeira</font> | "

END IF

%> <%

if CInt(pag) > 1 then

Response.Write "<a href='"&pagina&"?pag=" & pag - 1 &"'><b>Anterior</b></a> | "

Else

Response.Write "<font color='#ADADAD'><b>Anterior</b></font> | "

END IF

%> <%

IF (CInt(pag) < TotalPages) THEN

IF CInt(PF) <> TotalPages THEN

Response.Write "<a href='"&pagina&"?pag=" & pag+1 & "'><b>Próxima</b></a> | "

END IF

Else

Response.Write "<font color=""#ADADAD""><b>Próxima</b></font> | "

END IF

%> <%

IF (CInt(pag) < TotalPages) THEN

IF CInt(PF) <> TotalPages THEN

Response.Write "<a href='"&pagina&"?pag=" & TotalPages & "'>Última</a> "

END IF

Else

Response.Write "<font color=""#ADADAD"">Última</font>"

END IF

%>

<br>

<%

max_n_mostrados = 9

 

intervalo = Int(max_n_mostrados /2)

inicio = pag - intervalo

final = pag + 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(pag) Then

Response.Write "<font color=""#000000"">[<B>" & i & "</B>]<font color=""#000000""></font> "

END IF

If CInt(i) < CInt(pag) Then

Response.Write "<a href='"&pagina&"?pag=" & i & "'>" & i & "</a> "

END IF

If CInt(i) > CInt(pag) Then

Response.Write "<a href='"&pagina&"?pag=" & i & "'>" & i & "</a> "

END IF

Next

%>

<br>

<%

RS.Close

Set RS = Nothing

End IF

%>

 

Funciona maravilha!!!

Espero ter ajudado

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.