Ir para conteúdo
Fórum Script Brasil
  • 0

Paginação - Não Consigo


Muskito

Pergunta

Estou com problemas para paginar dados em ASP de um BD. Os dados carregam corretamente mas gostaria que aparecesse somente 1 registro por página, e apoarecer aqeles 2 botoes (<< anterior | Próximo>>").

Alguém ai poderia me ajudar?

Código:


<!--#include file="config.asp"-->
<%      sqlstmt = "SELECT * FROM noticias ORDER BY data, id DESC"
          Set rs = Server.CreateObject("ADODB.Recordset")
          rs.Open sqlstmt, Dados, 3, 3
         
TotalRecs = rs.recordcount
x = 0
For x = 1 to 9999
    If rs.eof then
        Exit For
    Else
        date1 = rs("data")
        id = rs("ID")
        name1 = rs("titulo")
          link = date1
        description = name1 
        %>
  <tr> 
    <td height="2" valign="top"><p><font face="Geneva, Arial, Helvetica, san-serif" size="1" class="home"><span class="home"><img src="imagens/<%=rs("foto")%>" border="0" align="left" hspace="8" vspace="2">
            <% =link %> -- <% =description%> 
        </span></font> 
          </p>
      </tr>
  <tr>
  <%
rs.MoveNext
End If
Next%>

Valeu desde já.

http://www.segermidia.com

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Ainda não consegui... Os codigos de paginação que encontrei geravam conflitos, varios conflitos, mesmo eu adaptando as informações do BD e coisas do genero.

Eu goastaria apenas de algo tipo:

Pagina 1 de 5

<< Anterior | Próxima >>

aqui esta meu código sem paginação:

<%
'#Função que tira todos os acentos das palavras
function TiraAcento(StrAcento)
 for i = 1 to len(StrAcento) 
  Letra = mid(StrAcento, i, 1)
  Select Case Letra
   Case "á","Á","à","À","ã","Ã","â","Â","â","ä","Ä"
   Letra = "A"
   Case "é","É","ê","Ê","Ë","ë","È","è"
   Letra = "E"
   Case "í","Í","ï","Ï","Ì","ì"
   Letra = "I"
   Case "ó","Ó","ô","Ô","õ","Õ","ö","Ö","ò","Ò"
   Letra = "O"
   Case "ú","Ú","Ù","ù","ú","û","ü","Ü","Û"
   Letra = "U"
   Case "ç","Ç"
   Letra = "C"
   Case "não"
   Letra = "N"
  End Select
  texto = texto & Letra
 next
 TiraAcento = texto
end function 
%>
<style type="text/css">
<!--
.style1 {
    font-size: 12px;
    font-family: Tahoma;
}
.style6 {font-size: 10px; font-family: Tahoma; }
.style10 {
    color: #BE7F5E;
    font-weight: bold;
}
.style16 {font-size: 11px; font-family: Tahoma; }
a:link {
    color: #BE7F5E;
}
a:visited {
    color: #BE7F5E;
}
a:hover {
    color: #FF9900;
}
a:active {
    color: #BE7F5E;
}
body {
    margin-left: 10px;
    margin-top: 10px;
    margin-right: 10px;
    margin-bottom: 10px;
}
.style20 {color: #333333}
.style22 {font-size: 11px; font-family: Tahoma; color: #000000; }
.style23 {color: #000000}
.style29 {
    color: #FFFFFF;
    font-family: Tahoma;
    font-size: 11px;
}
.style39 {color: #999999}
-->
</style>
</head>
<body>
<%
Busca = Trim(Request.form("buscando"))
%>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  
  <tr>
    <td height="44" scope="row"><div align="left" class="style1 style10">Lista de Arquitetos em  
        <%response.write " <b>"&Busca&"</b>" %>
        .</div>
      <hr size="1" noshade="noshade" color="#BE7F5E" /></td>
  </tr>
</table>
<%
Busca = Trim(Request.form("buscando"))
%>
<%
set DB = createobject("adodb.connection")
constr = "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("contato.mdb")
DB.open constr
Set objRS = Server.CreateObject("ADODB.Recordset")
%>
<%
function TiraAspas(str)
str = replace(str,"'","""")
TiraAspas = str
End function
%>
<%
Busca=TiraAspas(Busca) 
strSql = "SELECT * FROM contato WHERE cidade LIKE '%"&TiraAcento(Replace(busca, "'", "''"))&"%'"
objRS.Open strSQL,DB,1,1
%>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td align="left" valign="middle" scope="row"><div align="right"><a href="java script:window.print()"><img src="../../global_imagens/imprimir_icon.gif" width="19" height="21" border="0" align="absmiddle" /><span class="style16">Imprimir esta lista</span> </a></div></td>
  </tr>
</table>
<span class="style16">
<%
if (len(busca)<2) then
Response.write("Selecione uma cidade.")
ElseIf (Busca = "") then
Response.write("Selecione uma cidade.")
ElseIf (objRS.EOF = true) then
response.write ("Desculpe-nos. As empresas de <b>"&Busca&"</b> ainda não se cadastraram em nosso Banco de Dados.")
Else
do While not objRS.EOF
%>
</span>
<table width="100%" border="1" cellpadding="2" cellspacing="0" bordercolor="#f0f0f0">
  <tr>
    <td colspan="3" align="left" background="../../layout_busca/fundo_tab_listas.jpg" scope="row"><span class="style29">Empresa: <b><%=objRS(TiraAspas("nome"))%><b/></span></td>
  </tr>
  <tr>
    <td width="33%" align="left" bgcolor="f6f6f6" scope="row"><span class="style29 style23"><span class="style22"><span class="style39">Cidade:</span> <%=objRS(TiraAspas("cidade"))%></span></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6" ><span class="style22"><span class="style39">Estado:</span> <span class="style22"><%=objRS(TiraAspas("estado"))%></span></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6" ><span class="style22 style39">Website: </span><a href="http://<%Response.write objRS("site")%>" class="style16"><%=objRS(TiraAspas("site"))%></a></span></td>
  </tr>
  <tr>
    <td width="33%" align="left" bgcolor="f6f6f6" scope="row"><span class="style22"><span class="style39">Telefone:</span> <%=objRS(TiraAspas("telefone"))%></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6"><span class="style22"><span class="style39">E-mail:</span><a href="mailto:<%Response.write objRS("email")%>" class="style16"> <%=objRS(TiraAspas("email"))%></a></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6" > </td>
  </tr>
</table>
<span class="style20"><span class="style22"><span class="style6">
<%
objRS.MoveNext
Loop
End IF
%>

Link para o comentário
Compartilhar em outros sites

  • 0

Não entendi porque você postou esse segundo código

Fiz a paginação usando aquele primeiro que você postou

Mas não testei, não estou em casa

Se tiver algum erro você fala.

Veja se é isso o que queria

Se quizer alterar a quantidade de registros por página é só alterar a variável PORPAGINA

<%
sqlstmt = "SELECT * FROM noticias ORDER BY data, id DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, Dados, 3, 3
         
cont = 0
while not rs.EOF
cont = cont + 1
porpagina = 1
atual = Request.QueryString("pagina")
    if atual = "" then
    atual = 1
    end if                    
ate = atual * porpagina
de = ate - porpagina
    If cont <= ate AND cont > de then
    date1 = rs("data")
    id = rs("ID")
    name1 = rs("titulo")
    link = date1
    description = name1 
    %>
  <tr> 
    <td height="2" valign="top"><p><font face="Geneva, Arial, Helvetica, san-serif" size="1" class="home"><span class="home"><img src="imagens/<%=rs("foto")%>" border="0" align="left" hspace="8" vspace="2">
            <% =link %> -- <% =description%> 
        </span></font> 
          </p>
      </tr>
  <tr>
<%
    End if
rs.movenext
wend

paginaa = Cstr(cont / porpagina)
    Function AR(num
    Dim n1
    n1 = CStr(num)
        if InStr(1,n1,".",1) > 0 Or InStr(1,n1,",",1) > 0 Then
        ARR = Fix(n1) + 1
        else
        ARR = Fix(n1)
        end if
    End Function
paginas = ARR(paginaa)

If cint(atual) = cint(paginas) then
proxima = ""
separador = ""
Else
separador = "&nbsp;|&nbsp;"
proxima = "<a href='?pagina="&atual + 1&"'>Próxima&nbsp;&gt;&gt;</a>"
End if
If atual = 1 then
anterior = ""
separador = ""
Else
separador = "&nbsp;|&nbsp;"
anterior = "<a href='?pagina="&atual - 1&"'>&lt;&lt;&nbsp;Anterior</a>"
End if %>

<% 
If paginas <> 1 then
%>
    Página <%=atual%> de <%=paginas%>
    <% Response.write anterior&separador&proxima %>
<% End if %>

Link para o comentário
Compartilhar em outros sites

  • 0

O Problema é o seguinte.

Este primeiro código que postei eu consegui resolver, encontrei um outro escrip e consegui adaptar. Obrigasdo aos que ajudaram.

Mas agora tem outra página que qero paginar:

Ela exibe:

Trabalho 1 de 5

Primeiro Anterior [1] 2 3 4 5 Próximo Último

usei o mesmo código que na anterior mas não da certo.

Meu código:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>

<style type="text/css">
<!--
.style1 {
    font-size: 12px;
    font-family: Tahoma;
}
.style6 {font-size: 10px; font-family: Tahoma; }
.style10 {
    color: #BE7F5E;
    font-weight: bold;
}
.style16 {font-size: 11px; font-family: Tahoma; }
a:link {
    color: #BE7F5E;
}
a:visited {
    color: #BE7F5E;
}
a:hover {
    color: #FF9900;
}
a:active {
    color: #BE7F5E;
}
body {
    margin-left: 10px;
    margin-top: 10px;
    margin-right: 10px;
    margin-bottom: 10px;
}
.style20 {color: #333333}
.style22 {font-size: 11px; font-family: Tahoma; color: #000000; }
.style23 {color: #000000}
.style29 {
    color: #FFFFFF;
    font-family: Tahoma;
    font-size: 11px;
}
.style39 {color: #999999}
-->
</style>
</head>
<body>
<%
Busca = Trim(Request.form("buscando"))
%>
<table width="100%" border="0" cellspacing="0" cellpadding="5">
  
  <tr>
    <td height="44" scope="row"><div align="left" class="style1 style10">Lista de Arquitetos em  
        <%response.write " <b>"&Busca&"</b>" %>
        .</div>
      <hr size="1" noshade="noshade" color="#BE7F5E" /></td>
  </tr>
</table>
<%
PagAtual = Request.QueryString("PagAtual") 'página atual

set DB = createobject("adodb.connection")
constr = "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("contato.mdb")
DB.open constr
Set objRS = Server.CreateObject("ADODB.Recordset")

Busca=TiraAspas(Busca)
strSql = "SELECT * FROM contato WHERE cidade LIKE '%"&TiraAcento(Replace(busca, "'", "''"))&"%'"
objRS.Open strSQL,DB,3

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

'------- Coloque aqui a quantidade de registros que você deseja por página --------
SELECT CASE np
CASE "1" NumPorPage = "1"
CASE "15" NumPorPage = "5"
CASE ELSE NumPorPage = "8"
END SELECT
'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

objRS.CacheSize = NumPorPage 'Define o tamanho do Cache = para o número de registros
objRS.MoveFirst 'Move o RecorSet para o início 
objRS.PageSize = NumPorPage 'Coloca a quantidade de páginas

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

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

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

Count = 0 'Zera o contador

i = 0 

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

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

%> 

<table width="100%" border="0" cellspacing="0" cellpadding="5">
  <tr>
    <td align="left" valign="middle" scope="row"><div align="right"><a href="java script:window.print()"><img src="../../global_imagens/imprimir_icon.gif" width="19" height="21" border="0" align="absmiddle" /><span class="style16">Imprimir esta lista</span> </a></div></td>
  </tr>
</table>
<span class="style16">
<%
if (len(busca)<2) then
Response.write("Selecione uma cidade.")
ElseIf (Busca = "") then
Response.write("Selecione uma cidade.")
ElseIf (objRS.EOF = true) then
response.write ("Desculpe-nos. As empresas de <b>"&Busca&"</b> ainda não se cadastraram em nosso Banco de Dados.")
Else
do While not objRS.EOF
%>
</span>
<table width="100%" border="1" cellpadding="2" cellspacing="0" bordercolor="#f0f0f0">
  <tr>
    <td colspan="3" align="left" background="../../layout_busca/fundo_tab_listas.jpg" scope="row"><span class="style29">Empresa: <b><%=objRS(TiraAspas("nome"))%><b/></span></td>
  </tr>
  <tr>
    <td width="33%" align="left" bgcolor="f6f6f6" scope="row"><span class="style29 style23"><span class="style22"><span class="style39">Cidade:</span> <%=objRS(TiraAspas("cidade"))%></span></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6" ><span class="style22"><span class="style39">Estado:</span> <span class="style22"><%=objRS(TiraAspas("estado"))%></span></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6" ><span class="style22 style39">Website: </span><a href="http://<%Response.write objRS("site")%>" target="_blank" class="style16"><%=objRS(TiraAspas("site"))%></a></span></td>
  </tr>
  <tr>
    <td width="33%" align="left" bgcolor="f6f6f6" scope="row"><span class="style22"><span class="style39">Telefone:</span> <%=objRS(TiraAspas("telefone"))%></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6"><span class="style22"><span class="style39">E-mail:</span><a href="mailto:<%Response.write objRS("email")%>" class="style16"> <%=objRS(TiraAspas("email"))%></a></span></td>
    <td width="33%" align="left" bgcolor="f6f6f6" >&nbsp;</td>
  </tr>
</table>
<span class="style20"><span class="style22"><span class="style6">

<%
'################## paginacao 01 #####################

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

Response.Write("<font color=""#000000"" size=""1"" face=""Arial""> Trabalho " & PagAtual & " de " & TotalPages & "</font>")   

'Mostra os botões: Anterior e Próxima, utilizando da opção de IF 
%>
        </div></th>
      </tr>
      <tr>
        <td align="left" valign="middle" scope="row"><div align="left">
<%
i = i+1
Count = Count + 1   'paginacao
objRS.MoveNext
LOOP                'também paginacao
%>
<%
IF PagAtual > 1 THEN 

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


  Else

      Response.Write("<font color=""#000000"" size=""1"" face=""Arial"">") 
      Response.Write("Primeira") 
      Response.Write("</font>&nbsp;&nbsp;")

      Response.Write("<font color=""#000000"" size=""1"" face=""Arial"">") 
      Response.Write("Anterior") 
      Response.Write("</font>&nbsp;&nbsp;")


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=""#FF0000"" size=""1"" face=""Arial"">[ " & i & "<font color=""#FF0000""> ]</font>&nbsp;&nbsp;"
     END IF
     If CInt(i) < CInt(PagAtual) Then
      Response.Write "<a href='resultado.asp?PagAtual=" & i & "'>" & i & "</a>&nbsp;&nbsp;"
     END IF
     If CInt(i) > CInt(PagAtual) Then
         Response.Write "<a href='resultado.asp?PagAtual=" & i & "'>" & i & "</a>&nbsp;&nbsp;"
  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("<font color=""#000000"" size=""1"" face=""Arial"">")
      Response.Write("<a href='resultado.asp?PagAtual=" & PagAtual + 1 & "'>")
      Response.Write("Próxima")
      Response.Write("</a></font>&nbsp;&nbsp;") 

      Response.Write("<font color=""#000000"" size=""1"" face=""Arial"">")
      Response.Write("<a href='resultado.asp?PagAtual=" & TotalPages & "'>")
      Response.Write("Ultima")
      Response.Write("</a></font>&nbsp;&nbsp;")        

 Else
      Response.Write("<font color=""#CCCCCC"" size=""1"" face=""Arial"">")
      Response.Write("Próxima") 
      Response.Write("</font>&nbsp;&nbsp;")

      Response.Write("<font color=""#999999"" size=""1"" face=""Arial"">")
      Response.Write("Ultima") 
      Response.Write("</font>&nbsp;&nbsp;")

 End if
%>

</span></span></span>
<p>&nbsp;</p>
</body>
</html>


O erro que apresenta é:

Erro de compilação do Microsoft VBScript (0x800A03FB)

'End' esperado

.../resultado.asp, line 316

A linha 316 é o Último "End If" que aparece no código

O que estou fazendo errado? Por favor, alguém me ajude!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...