Ir para conteúdo

POWERED BY:

Arquivado

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

caioosman

Paginação

Recommended Posts

Olá pessoal... estou com um guestbook mas precisava fazer paginação nele pra ele exibir 20 resultados por vez.

O problema é que eu não domino o asp e estou perdido tentando fazer isso, todos códigos que eu tento dão erro.

 

Essa é a conexão com o banco de dados (conecta.asp)

 

<%

Set Conexao = CreateObject("ADODB.CONNECTION")

conStr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=E:\Inetpub\wwwroot\dados\guest.mdb"

ConexaoAberta = FALSE

Sub AbreConexao()

if not ConexaoAberta then

Conexao.Open ConStr

ConexaoAberta = True

end if

end sub

Sub FechaConexao()

if ConexaoAberta then

Conexao.close

ConexaoAberta = False

end if

end sub

%>

 

Esse é o arquivo que exibe os registros do banco de dados (default.asp)

 

<%

AbreConexao

listar = "SELECT * FROM assinar WHERE disp='S' ORDER BY id DESC"

Set lista = Conexao.Execute(listar)

%>

 

....

 

<%if lista.EOF then%>

<b>

<span class="estilotexto">N</span></b><span class="estilotexto">ão há usuários cadastrados no momento!</span></font></p>

<font face="Tahoma">

<hr size="1">

</font>

<% else %> <%do while NOT lista.EOF%>

<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#222222">

<tr bgcolor="#333333">

<th width="94" class="estilotexto" scope="row"><div align="left" class="style3">Nome:</div></th>

<td width="306" class="estilotexto"><%= lista("nome")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Idade:</div></th>

<td class="estilotexto"><%= lista("idade")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Localidade:</div></th>

<td class="estilotexto"><%= lista("cidade")%> - <%= lista("estado")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Site</div></th>

<td class="estilotexto"><%= lista("site")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Comentário</div></th>

<td class="estilotexto"><%= lista("comment")%></font></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left"><span class="style3">Data / Hora: </span></div></th>

<td class="estilotexto"><%= lista("data_coment")%></td>

</tr>

</table>

<br>

<%lista.MoveNext%> <%loop%> <%end if%>

<% FechaConexao %>

 

Galera, como faz pra fazer uma paginação num sistema desses?

 

Valeu a todos pela força.

 

Atenciosamente,

Caio Osman

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fiz a paginação e teste num bd que criei pra ver se tava legal aqui não deu erro agora é só colocar os campos que você quer enter as marcas que fiz e acertar o caminho do teu bd

 

<%'Paginação de Registrosn_page=request("n_page")If n_page="" Then n_page = 1set db = server.CreateObject("ADODB.Connection")db.Open "DBQ=c:\Inetpub\wwwroot\guest\guest.mdb;Driver={Microsoft Access Driver (*.mdb)}"Set lista=Server.CreateObject("ADODB.Recordset")lista.Open "SELECT * FROM Assinar WHERE disp= 'S' ORDER BY id DESC", db, 3,3IF lista.EOF then   Response.Write "nenhum registro encontrado"  Response.End 'paramos o programaELSElista.PageSize = 20 'registros por páginalista.AbsolutePage = Cint(n_page) 'redireciona os registros para a páginacontador=0do While not lista.EOF AND contador < lista.PageSizeresponse.write "<font face=verdana size=2><b>"contador=contador+1%> 'Aqui voce coloca os campos que você quer que apareça<%= lista("teste")%><br><%lista.MoveNextloop response.write "<br>"For navega= 1 to lista.PageCountIf navega = Cint(n_page) Then response.write "<font face=verdana size=2><b>"response.write navegaElseresponse.write "<font face=verdana size=2><b>"response.write space(1) & "<a href=teste.asp?n_page=" & navega & ">" & navega & "</a>" & space(1)End IfNextresponse.write "<br><br>"anterior = n_page - 1proxima = n_page + 1If anterior > 0 Thenresponse.write "<font face=verdana size=2><b>"response.write "<a href=teste.asp?n_page="&anterior&">Anterior</a>" End IfIf proxima < navega Thenresponse.write "<font face=verdana size=2><b>"response.write space(1) & "<a href=teste.asp?n_page="&proxima&">Próxima</a>" End Ifend if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Lone, muito obrigado pela força! Eu alterei o cód. com base no seu, ficando assim:<%'Paginação de Registrosn_page=request("n_page")If n_page="" Then n_page = 1set db = server.CreateObject("ADODB.Connection")db.Open "DBQ=C:\Inetpub\wwwroot\dados\guest.mdb;Driver={Microsoft Access Driver (*.mdb)}"Set lista=Server.CreateObject("ADODB.Recordset")lista.Open "SELECT * FROM assinar WHERE disp= 'S' ORDER BY id DESC", db, 3,3IF lista.EOF then Response.Write "nenhum registro encontrado" Response.End 'paramos o programaELSElista.PageSize = 20 'registros por páginalista.AbsolutePage = Cint(n_page) 'redireciona os registros para a páginacontador=0do While not lista.EOF AND contador < lista.PageSizeresponse.write "<font face=verdana size=2><b>"contador=contador+1%> <%AbreConexaolistar = "SELECT * FROM assinar WHERE disp='S' ORDER BY id DESC"Set lista = Conexao.Execute(listar)%> <%if lista.EOF then%> <b> <span class="estilotexto">N</span></b><span class="estilotexto">ão há usuários cadastrados no momento!</span></font></p> <font face="Tahoma"> <hr size="1"> </font><% else %> <%do while NOT lista.EOF%> <table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#222222"> <tr bgcolor="#333333"> <th width="94" class="estilotexto" scope="row"><div align="left" class="style3">Nome:</div></th> <td width="306" class="estilotexto"><%= lista("nome")%></td> </tr> <tr bgcolor="#333333"> <th class="estilotexto" scope="row"><div align="left" class="style3">Idade:</div></th> <td class="estilotexto"><%= lista("idade")%></td> </tr> <tr bgcolor="#333333"> <th class="estilotexto" scope="row"><div align="left" class="style3">Localidade:</div></th> <td class="estilotexto"><%= lista("cidade")%> - <%= lista("estado")%></td> </tr> <tr bgcolor="#333333"> <th class="estilotexto" scope="row"><div align="left" class="style3">Site</div></th> <td class="estilotexto"><%= lista("site")%></td> </tr> <tr bgcolor="#333333"> <th class="estilotexto" scope="row"><div align="left" class="style3">Comentário</div></th> <td class="estilotexto"><%= lista("comment")%></font></td> </tr> <tr bgcolor="#333333"> <th class="estilotexto" scope="row"><div align="left"><span class="style3">Data / Hora: </span></div></th> <td class="estilotexto"><%= lista("data_coment")%></td> </tr></table><br><%lista.MoveNextloop response.write "<br>"For navega= 1 to lista.PageCountIf navega = Cint(n_page) Then response.write "<font face=verdana size=2><b>"response.write navegaElseresponse.write "<font face=verdana size=2><b>"response.write space(1) & "<a href=teste.asp?n_page=" & navega & ">" & navega & "</a>" & space(1)End IfNextresponse.write "<br><br>"anterior = n_page - 1proxima = n_page + 1If anterior > 0 Thenresponse.write "<font face=verdana size=2><b>"response.write "<a href=teste.asp?n_page="&anterior&">Anterior</a>" End IfIf proxima < navega Thenresponse.write "<font face=verdana size=2><b>"response.write space(1) & "<a href=teste.asp?n_page="&proxima&">Próxima</a>" End Ifend if%> <% FechaConexao %>Só que mesmo assim continua dando erro. Não sei por que, mas o IIS não especifica o erro, mas foi o 500 (erro interno do servidor). Verifiquei os links do bd, tentei por virtual e por diretório, e tentei rodar do servidor web tb, e não consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abra seu navegador, vai em ferramentas>opções de internet>aba avançadas e procure pela opção MOSTRAR ERROS DE HTTP AMIGÁVEIS e DESABILITE a opção...

 

 

 

falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Lone, muito obrigado pela força!

 

Eu alterei o cód. com base no seu, ficando assim:

 

<%

'Paginação de Registros

n_page=request("n_page")

If n_page="" Then n_page = 1

 

set db = server.CreateObject("ADODB.Connection")

db.Open "DBQ=C:\Inetpub\wwwroot\dados\guest.mdb;Driver={Microsoft Access Driver (*.mdb)}"

 

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

lista.Open "SELECT * FROM assinar WHERE disp= 'S' ORDER BY id DESC", db, 3,3

IF lista.EOF then

Response.Write "nenhum registro encontrado"

Response.End 'paramos o programa

ELSE

lista.PageSize = 20 'registros por página

lista.AbsolutePage = Cint(n_page) 'redireciona os registros para a página

 

contador=0

do While not lista.EOF AND contador < lista.PageSize

response.write "<font face=verdana size=2><b>"

contador=contador+1

%>

 

<%

AbreConexao

listar = "SELECT * FROM assinar WHERE disp='S' ORDER BY id DESC"

Set lista = Conexao.Execute(listar)

%>

<%if lista.EOF then%>

<b>

<span class="estilotexto">N</span></b><span class="estilotexto">ão há usuários cadastrados no momento!</span></font></p>

<font face="Tahoma">

<hr size="1">

</font>

<% else %> <%do while NOT lista.EOF%>

<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#222222">

<tr bgcolor="#333333">

<th width="94" class="estilotexto" scope="row"><div align="left" class="style3">Nome:</div></th>

<td width="306" class="estilotexto"><%= lista("nome")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Idade:</div></th>

<td class="estilotexto"><%= lista("idade")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Localidade:</div></th>

<td class="estilotexto"><%= lista("cidade")%> - <%= lista("estado")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Site</div></th>

<td class="estilotexto"><%= lista("site")%></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left" class="style3">Comentário</div></th>

<td class="estilotexto"><%= lista("comment")%></font></td>

</tr>

<tr bgcolor="#333333">

<th class="estilotexto" scope="row"><div align="left"><span class="style3">Data / Hora: </span></div></th>

<td class="estilotexto"><%= lista("data_coment")%></td>

</tr>

</table>

<br>

<%lista.MoveNext

loop

 

response.write "<br>"

 

For navega= 1 to lista.PageCount

If navega = Cint(n_page) Then

response.write "<font face=verdana size=2><b>"

response.write navega

Else

response.write "<font face=verdana size=2><b>"

response.write space(1) & "<a href=teste.asp?n_page=" & navega & ">" & navega & "</a>" & space(1)

End If

Next

 

response.write "<br><br>"

 

anterior = n_page - 1

proxima = n_page + 1

 

If anterior > 0 Then

response.write "<font face=verdana size=2><b>"

response.write "<a href=teste.asp?n_page="&anterior&">Anterior</a>"

End If

 

If proxima < navega Then

response.write "<font face=verdana size=2><b>"

response.write space(1) & "<a href=teste.asp?n_page="&proxima&">Próxima</a>"

End If

end if

%>

<% FechaConexao %>

 

Só que mesmo assim continua dando erro. Não sei por que, mas o IIS não especifica o erro, mas foi o 500 (erro interno do servidor). Verifiquei os links do bd, tentei por virtual e por diretório, e tentei rodar do servidor web tb, e não consegui.

Cara não esquece que lá embaixo voce tem que mudar o nome da pagina para o real nome dá sua pagina

 

response.write space(1) & "<a href=teste.asp?n_page="&proxima&">Próxima</a>"

 

isso em todas as linhas onde aparece a teste.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rockloko e Lone, valeu pra vocês dois, graças a vocês consegui fazer o esquema da paginação!Valeu mesmo!

Que nada precisando tamos ai, abraços. :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.