Ir para conteúdo

POWERED BY:

Arquivado

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

Khelly

[Resolvido] Problemas com paginação

Recommended Posts

Olá pessoal como vão vcs?.. estava meio longe do forum, e agora volto com mais um abacaxi pra vcs me ajudarem a descascar...bem é seguite:

Fiz um sistema de busca em asp e banco mysql, e estou com o seguinte problema , quando efetuo uma busca a primeira pagina a busca aparece correta de acordo com a palavra chave pesquisada, mas quando clico em proxima pagina surge tudo que tem no banco dedados sem seguir o criterio da busca, creio que o problema seja no codigo da paginação, mas ja fiz varias altereações e nada, gostaria de pedir ajuda de vcs para achar onde esta o problema abaixo segue o codigo:

 


<!--#Include File="arquivo_de_conexao.asp"-->

<%
Response.Expires = 0

'ConnString="Driver={MySQL ODBC 3.51 Driver};Server=mysql01.odiariodeteresopolis.com.br;Port=3306;Database=odiariodeteres;User=odiariodeteres;Password=junior6002;Option=3" 
'Set Conexao = Server.CreateObject("ADODB.Connection")
'Conexao.Open ConnString  


Function PreparaPalavra(str)
	PreparaPalavra = Replace(str,"á","a")
	PreparaPalavra = Replace(PreparaPalavra,"à","a")
	PreparaPalavra = Replace(PreparaPalavra,"â","a")
	PreparaPalavra = Replace(PreparaPalavra,"ä","a")
	PreparaPalavra = Replace(PreparaPalavra,"ã","a")
	PreparaPalavra = Replace(PreparaPalavra,"a","[a,á,à,ã,â,ä]")

	PreparaPalavra = Replace(PreparaPalavra,"é","e")
	PreparaPalavra = Replace(PreparaPalavra,"è","e")
	PreparaPalavra = Replace(PreparaPalavra,"ê","e")
	PreparaPalavra = Replace(PreparaPalavra,"ë","e")
	PreparaPalavra = Replace(PreparaPalavra,"e","[e,é,è,ê,ë]")

	PreparaPalavra = Replace(PreparaPalavra,"í","i")
	PreparaPalavra = Replace(PreparaPalavra,"í","i")
	PreparaPalavra = Replace(PreparaPalavra,"î","i")
	PreparaPalavra = Replace(PreparaPalavra,"ï","i")
	PreparaPalavra = Replace(PreparaPalavra,"i","[i,í,ì,î,ï]")

	PreparaPalavra = Replace(PreparaPalavra,"ó","o")
	PreparaPalavra = Replace(PreparaPalavra,"ò","o")
	PreparaPalavra = Replace(PreparaPalavra,"ô","o")
	PreparaPalavra = Replace(PreparaPalavra,"ö","o")
	PreparaPalavra = Replace(PreparaPalavra,"õ","o")
	PreparaPalavra = Replace(PreparaPalavra,"o","[o,ó,ò,ô,õ,ö]")

	PreparaPalavra = Replace(PreparaPalavra,"ú","u")
	PreparaPalavra = Replace(PreparaPalavra,"ù","u")
	PreparaPalavra = Replace(PreparaPalavra,"û","u")
	PreparaPalavra = Replace(PreparaPalavra,"ü","u")
	PreparaPalavra = Replace(PreparaPalavra,"u","[u,ú,ù,û,ü]")
End Function

Call AbreConn()

'pega a pagina atual
pagina = request.ServerVariables("SCRIPT_NAME")

'numero de registros por pagina...
pageSize = 10

if(len(Request.QueryString("p")) = 0 )then
  paginaAtual = 1
else
  paginaAtual = CInt(Request.QueryString("p"))
end if

' conta o numero de registros...
sql = "SELECT COUNT(*) AS total FROM Noticias where TextoNoticia LIKE '%"&(Request.QueryString("textfield")) &"%' ORDER BY DataNoticia"
set rs = conn.execute(sql)

'total de registros
recordCount = Cint(rs("total"))

'calculamos o numero de paginas...

pageCount = Clng(recordCount / pageSize)

If pageCount < 1 then
pageCount = 1
end if

rs.Close()


Flag1 = INT(paginaAtual / pagesize)

PI = INT(Flag1 * pagesize)

IF PI = 0 THEN
PI = 1
END IF
PF = PI + pagesize - 1

sql = "SELECT * FROM Noticias WHERE TextoNoticia LIKE '%"&(Request.QueryString("textfield")) &"%' ORDER BY DataNoticia DESC LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

set Noticias = conn.execute(sql)

%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="css/estilo.css" rel="stylesheet" type="text/css">
<title>O Diário de Teresópolis</title>
<style type="text/css">
<!--
body {
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
	background-color: #CCCCCC;
}
.style1 {font-family: Arial, Helvetica, sans-serif}
.style2 {font-family: Arial, Helvetica, sans-serif; font-size: 9px; }
.style3 {font-family: Arial, Helvetica, sans-serif; font-size: 9pt; }
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function P7_hideDiv(evt) { //v1.3 by PVII
 var b,relT,mT=false; 
 if(document.layers){b=evt.target;if(b.p7aHide){
  b.visibility="hidden";}else{routeEvent(evt);}
 }else if(document.all&&!window.opera){b=event.srcElement;
  while(b!=null){if(b.tagName=="DIV" && b.p7ahD){mT=true;break;}b=b.parentElement;}
  if(!b.contains(event.toElement)){b.style.visibility="hidden";}
 }else if(document.getElementById){b=evt.currentTarget;relT=evt.relatedTarget;
  while(relT!=null){if(b==relT){mT=true;break;}
  relT=relT.parentNode;}if(!mT){b.style.visibility="hidden";}}
}

function P7_autoHide() { //v1.3 by PVII
 var i,g,args=P7_autoHide.arguments;
 for(i=0;i<args.length;i++){if((g=MM_findObj(args[i]))!=null){
  g.p7aHide=true;if(document.layers){
  g.captureEvents(Event.MOUSEOUT);}g.onmouseout=P7_hideDiv;g.p7ahD=true;}}
}

function P7_autoLayers() { //v1.4 by PVII
 var g,b,k,f,args=P7_autoLayers.arguments;a=parseInt(args[0]);if(isNaN(a))a=0;
 if(!document.p7setc){p7c=new Array();document.p7setc=true;for(var u=0;u<10;u++){
 p7c[u]=new Array();}}for(k=0;k<p7c[a].length;k++){if((g=MM_findObj(p7c[a][k]))!=null){
 b=(document.layers)?g:g.style;b.visibility="hidden";}}for(k=1;k<args.length;k++){
 if((g=MM_findObj(args[k]))!=null){b=(document.layers)?g:g.style;b.visibility="visible";f=false;
 for(var j=0;j<p7c[a].length;j++){if(args[k]==p7c[a][j]) {f=true;}}
 if(!f){p7c[a][p7c[a].length++]=args[k];}}}
}
//-->
</script>
</head>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3403288-7");
pageTracker._initData();
pageTracker._trackPageview();
</script>

<body>
<table width="760" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
  <tr>
    <th colspan="2" scope="col"><!--#include file="menu.htm" --></th>
  </tr>
  <tr>
    <th width="639" align="center" valign="top" scope="col"><table width="639" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <th width="639" scope="col"><% If Noticias.EOF Then %>
          <p class="destaque"  >Não foram encontradas notícias para <strong><%= Request.QueryString("textfield") %></strong>.</p>
          <% Else %>
          <% If Resultado = 1 Then %>
          <p class="destaque"  >Foi encontrada 1 notícia para <strong><%= Request.QueryString("textfield") %></strong>:</p>
          <% Else %>
          <p class="destaque"  >Foram encontradas <%= Resultado %> notícias para <strong><%= Request.QueryString("textfield") %></strong>:</p>
          <% End If %>
          <%
				   'Noticias.AbsolutePage = CInt(NumeroPagina)
				   
				   While Not Noticias.EOF
				   %>
          <strong><a href="leitura_noticias.asp?IdNoticia=<%= Noticias("IdNoticia") %>" ><span class="textosinternos"><%= Noticias("TituloNoticia") %></span></a></strong><br />
          <span class="textosinternos"><%= Noticias("DataNoticia") %></span><br />
          <br />
          <%
				   Noticias.MoveNext
				   Wend
				   %>
                  
                   
          <p align="center"><span class="paginacao">
            <%
					Response.Write ("<B><strong> Página " & paginaAtual & " de " & pagecount & " </strong></B><br>")
' cria os links de pagians...
IF CInt(paginaAtual) > 1 THEN
Response.Write "<a href='"&pagina&"?p=1'>Primeira</a> "
Else
Response.Write "<font color=""#ADADAD"">Primeira</font> "
END IF

if CInt(paginaAtual) > 1 then
Response.Write "<a href='"&pagina&"?p=" & paginaAtual - 1 &"'>Anterior</a> "
Else
Response.Write "<font color='#666666'>Anterior</font>  "
END IF

'for i=1 to pageCount
  'Response.Write("<a href='"&pagina&"?p=" & i & "'>" & i & "</a> ")
'next
  

IF (CInt(paginaAtual) < pagecount) THEN
         IF CInt(PF) <> pagecount THEN
   Response.Write "<a href='"&pagina&"?p=" & paginaAtual+1 & "'>Próxima</a> "
  END IF
Else
  Response.Write "<font color=""#ADADAD"">Próxima</font> "
END IF


IF (CInt(paginaAtual) <> pagecount) THEN
         IF CInt(PF) <> pagecount THEN
   Response.Write "<a href='"&pagina&"?p=" & pagecount & "'>Última</a> "
  END IF
Else
  Response.Write "<font color=""#ADADAD"">Última</font> "
  END IF
					%>
            </span>          </p>
          <% End If %></th>
      </tr>
    </table></th>
    <th width="121" valign="top" scope="col"><!--#include file="col_direita.asp" --></th>
  </tr>
  <tr>
    <th colspan="2" align="center" scope="col"><!--#include file="rodape.html" --></th>
  </tr>
</table>
</body>
</html>
<%
Noticias.Close
Set Noticias = Nothing

'Conexao.Close
'Set Conexao = Nothing

Call FechaConn()
set conn = nothing
%>

 

 

AQUI VAI O CODIGO DO FORM DA BUSCA:

 

 <form action="busca.asp" method="post" name="form1" class="menu" id="form2"> <td width="233" valign="middle" background="imagens/layout_r3_c5.jpg" scope="col">
            <span class="busca">BUSCA</span><span class="busca style1">:</span>
            <input name="textfield" type="text" size="18">
             <input type="submit" class="input2" value="Buscar">
       </td> </form>

ARQUIVO DE CONEXÃO

 

<%
dim conn

Sub AbreConn()

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

conn.Open = "Driver={MySQL ODBC 3.51 Driver};Server=mysql01.odiariodeteresopolis.com.br;Port=3306;Database=odiariodeteres;User=odiariodeteres;Password=junior6002;Option=3" 

End Sub


Sub FechaConn()

conn.Close()
Set conn = Nothing

End Sub

%>

ESPERO QUE VCS POSSAM ME AJUDAR E DESDE JA FICO GRATA...BJUS

Compartilhar este post


Link para o post
Compartilhar em outros sites

é gerado algum erro !?!?!

existem exemplos de paginacaun no forum tb, pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem formas mais simples de paginar, mas ao meu ver su problema se resolve colocando o parametro buscado no link de paginação

 

De:

Response.Write "<a href='"&pagina&"?p=" & paginaAtual - 1 &"'>Anterior</a> "

 

Para:

Response.Write "<a href='"&pagina&"?p=" & paginaAtual - 1 &"&textfield=" & request.querystring("textfield") & "'>Anterior</a> "

 

faça o mesmo para os demais links da paginação

Compartilhar este post


Link para o post
Compartilhar em outros sites

um bom exemplo, podete ajudar tb

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia meninos, muito obrigada pelas dicas e pela atenção, utilizei a dica do jonathan e funcionou perfeitamente, muuuuitissimo obrigada aos dois....bjao!!!!!

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.