Ir para conteúdo

POWERED BY:

Arquivado

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

celi

adaptar paginação em sistema de busca

Recommended Posts

olá amigos bom dia! tira uma dúvida por favor, como posso adaptar uma paginação nesta busca:

<% @Language = VBScript %>

<%session.LCID=1046%>

<%

function preparaPalavra(str)

preparaPalavra = replace(str,"a","[a,á,à,ã,â,ä]")

preparaPalavra = replace(preparaPalavra,"e","[e,é,è,ê,ë]")

preparaPalavra = replace(preparaPalavra,"i","[i,í,ì,î,ï]")

preparaPalavra = replace(preparaPalavra,"o","[o,ó,ò,õ,ô,ö]")

preparaPalavra = replace(preparaPalavra,"u","[u,ú,ù,û,ü]")

preparaPalavra = preparaPalavra

end function

 

StrAcento = preparaPalavra(Request.QueryString("busca"))

if StrAcento<> "" then

stringConexao = "Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & Server.MapPath("db/db.mdb")

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

RsConexao.Open stringConexao

strSQL = "SELECT * FROM Noticias WHERE Noticia LIKE '%"& StrAcento &"%'"

Set RS = RsConexao.Execute(strSQL)

%><body bgcolor="white" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">

<font size="2" face="Geneva, Arial, Helvetica, sans-serif"><strong>Resultado(s)<span style="font-size:10pt;">

: </P></span></strong></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><span style="font-size:10pt;">

<%While not RS.EOF

response.write ("<a href=""mostrar.asp?id=" & "" & RS("id") & """>" & RS ("Data") & " " & "-" & " " & RS("Topico") & "</a>") & "<BR><BR>" & "____________________________________________________________________" & "</P>"

RS.MoveNext

Wend

end if

%>

</span></font> 

outra coisa, como faço para por tiopo: você buscou por: (aqui entra o que foi digitado no formulário de busca), obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemlo

 

<%

Call AbreConn()

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

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

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 nome_da_tabela"
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

' selecionamos os registros...
sql = "SELECT * FROM nome_da_tabela LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

set rs = conn.execute(sql)
	  
do while not rs.eof
' aqui entra o q você quer exibir
  Response.Write rs("nome_do_primeiro_campo") &" - "& rs("nome_do_segundo_campo") & "<br>"
  rs.MoveNext()
loop

rs.Close()
set rs = nothing
Call FechaConn()
set conn = nothing

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
  
%>

Abaixo está o arquivo que faz a conexão com o banco "arquivo_de_conexao.asp"

 

<%
dim conn

Sub AbreConn()

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

conn.Open = "Driver={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=Nome_do_banco; UID=seu_usuario; PWD=sua_senha;" 

End Sub


Sub FechaConn()

conn.Close()
Set conn = Nothing

End Sub

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outra coisa...

 

como faço para por tiopo: você buscou por: (aqui entra o que foi digitado no formulário de busca)

Resgata a Query:

 

você buscou por: <%=Request.QueryString("busca")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

na paginação do amigo xanildo tem uma área para você colocar teu SQL, insira ele corretamente e copie toda a paginação feita pelo mesmo para seu codigo, e testa, os erros que acontecer, ou acertos, posta para a gente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara esta meu servidor é muito ruim. o erro que aparece é este ai oh:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.

 

More information about this error may be available in the server error log.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desabilite a opção de exibir mensagens de erro no browser, e veja se ele exibe um número de erro e linha...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele só da mensagem de Internal Server Error...

você esta no localhost ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o erro ae:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

 

[MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on 'localhost' (10061)

 

/site/buscar.asp, line 8

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se as permissões no arquivo de dados estão corretas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vajam se está correto por favor:

<%
dim conn

Sub AbreConn()

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

conn.Open = "Driver={MySQL ODBC 3.51 Driver}; SERVER=db/db.mdb; DATABASE=db/db.mdb; UID=seu_usuario; PWD=sua_senha;" 

End Sub


Sub FechaConn()

conn.Close()
Set conn = Nothing

End Sub

%>
<%

Call AbreConn()

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

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

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 noticia"
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

' selecionamos os registros...
sql = "SELECT * FROM noticia LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

set rs = conn.execute(sql)
          
do while not rs.eof
' aqui entra o q você quer exibir
  Response.Write rs("Topico") &" - "& rs("Noticia") & "<br>"
  rs.MoveNext()
loop

rs.Close()
set rs = nothing
Call FechaConn()
set conn = nothing

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
 
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz a alteração e aparece o erro:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

 

[MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on '187.84.225.2' (10061)

 

/site/buscar.asp, line 8

Compartilhar este post


Link para o post
Compartilhar em outros sites

conn.Open = "Driver={MySQL ODBC 3.51 Driver}; SERVER=187....; DATABASE=admin/dados/dados.mdb UID=seu_usuario; PWD=sua_senha;"

 

Na parte em negrito eu teria que colocar algum login e senha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu banco é ACCESS ou Mysql??

 

se for ACCESS usa assim...

conn.open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("admin/dados/dados.mdb")&";Jet OLEDB:Database Password=;")

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique também se as permissões estão setadas corretamente..

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora apareceu o erro seguinte:

 

Microsoft JET Database Engine error '80040e14'

 

Syntax error in FROM clause.

 

/site/buscar.asp, line 67

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.