Ir para conteúdo

POWERED BY:

Arquivado

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

LUIZ PAULO MONTEIRO

Busca + Paginação + Acentuação PARA ACABAR

Recommended Posts

Bom dia Pessoal, Estou batendo cabeça com um sisteminha que estou fazendo, de busca com paginação, está quase acabando, mas está dando um conflito.A busca tá trazendo o resultado certo, porém quando há mais de uma página e vou para próxima página pela (paginação) ele me traz todos os registros do banco de dados, alguém pode me ajudar por favor?.olha o código abaixo:<% '#Função que tira todos os acentos das palavrasfunction 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 "ñ" Letra = "N" End Select texto = texto & Letra next TiraAcento = textoend function ' #Conexão com o banco de dadosSet Conexao = CreateObject("ADODB.CONNECTION")Constr ="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("clientes.mdb")Conexao.Open ConStrstrURL = Request.form("URL")nome = Request.form("nome")Session("nome")= nome%><style type="text/css">.texto {font-family: Verdana; font-size: 11px;}.caixa {font-family: Verdana; font-size: 11px; font-weight: bolder;}.botao {font-family: Verdana; font-size: 11px;}.link:link {color: #000000; text-decoration: none;}.link:visited {color: #000000; text-decoration: none;}.link:hover {color: #000000; text-decoration: underline;}</style><html><head><title>..:: teste ::..</title></head><body bgcolor="#EEEEEE"><table width="100%" height="100%" border="1" align="center" cellpadding="6" cellspacing="2" bordercolor="#D4D9DB" bgcolor="#FFFFFF" class="texto"><tr> <td height="22" align="center" bgcolor="#EEEEEE"><b>Sua Pesquisa retornou os seguintes resultados</b></td></tr><tr><td valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="texto"> <tr> <td align="center"> :: Pesquisa de cadastros com foto::</font></STRONG></FONT></p> <form action="procura.asp" method="post"> <input name="nome" id="nome" value="<%= nome %>" /> <input name="submit" type="submit" value="Pesquisar" /> </form> <p align="center"> <hr size="1" color="#000000"> </td> </tr> <tr> <td> <% ' Total de registros por páginaregistros = 5If Request.QueryString("pagina")<>"" Then Session("pagina")=Request.QueryString("pagina")Else Session("pagina")=1End IfSet rs = Server.CreateObject("ADODB.RECORDSET")Set rs.ActiveConnection = Conexaors.CursorType = 3rs.PageSize = registros' Instrução SQL que busca nos campos Nome e Descrição'sql = "SELECT * FROM contatos WHERE nome LIKE '%" & Request("nome")&"%' " SQL = "SELECT * " _ & "FROM contatos " _ & "WHERE nome LIKE '%" & TiraAcento(Replace(nome, "'", "''")) & "%' " rs.Open sqlIf rs.EOF Then' Se não encontrou nada... %> <div align="center">Não foi encontrado nenhum resultado para: <b><u><%=nome%></u></b></div> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <% Else' Se encontrou alguma coisa... %> <b><%=rs.RecordCount%></b> Resultados encontrados para - <b> <u><%=Session("nome")%></u></b></font></td> <td><div align="right"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <b> Página <%=Session("pagina")%> de <%=RS.PageCount%></b> </font></div></td> </tr> </table> <hr size="1" color="#000000"> <br> <% RS.AbsolutePage=Session("pagina")' <% rs.AbsolutePage = paginaWhile Not rs.EOF AND x < rs.PageSizex = x + 1 %> <table width="100%" border="1" cellspacing="1" cellpadding="0" bordercolor="#003366"> <tr> <td width="20%" height="20"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Nome:</b> <%=rs("nome")%> </font></td> <td width="32%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>Telefone:</b> <%=rs("telefone")%> </font></td> <td width="48%"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>E-mail:</b> <%=rs("e-mail")%></font></td> </tr> </table> <br> <br> <% rs.MoveNextWend %> <p> <table width="100%" border="0" cellpadding="0" cellspacing="0" class="texto"> <tr> <td align="center"> <% ' Links de Navegaçãoanterior = Session("pagina") - 1proxima = Session("pagina") + 1ultima = rs.PageCountprimeira = 1ultm2 = FormatNumber(rs.PageCount - 1,0)If Session("pagina") <> 1 ThenResponse.Write "<b>« <a href=procura.asp?pagina="&primeira&">Primeira Página</a></b> "End IfIf Session("pagina") > 1 AND Session("pagina") <> 2 ThenResponse.Write "<b>[ <a href=procura.asp?pagina="&anterior - 1&">"&anterior - 1&"</a> ]</b> "End IfIf Session("pagina") > 1 ThenResponse.Write "<b>[ <a href=procura.asp?pagina="&anterior&">"&anterior&"</a> ]</b> "End IfResponse.Write "<b>[ "&Session("pagina")&" ]</b> "If Not rs.EOF ThenResponse.Write "<b>[ <a href=procura.asp?pagina="&proxima&">"&proxima&"</a> ]</b> "End IfIf Not rs.EOF AND Session("pagina") <> ultima AND Session("pagina") <> ultm2 ThenResponse.Write "<b>[ <a href=procura.asp?pagina="&proxima + 1&">"&proxima + 1&"</a> ]</b> "End IfIf Not rs.EOF ThenResponse.Write "<b><a href=procura.asp?pagina="&ultima&">Última Página</a> »</b> "End Ifrs.CloseSet rs = NothingEnd If %> </td> </tr> </table> </td> </tr> </table></td></tr></table></body></html>Abraços Luiz Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, sua string de SQL é:SQL = "SELECT * " _& "FROM contatos " _& "WHERE nome LIKE '%" & TiraAcento(Replace(nome, "'", "''")) & "%' " e a variável nome, tu puxa lá em cima como :nome = Request.form("nome")eh por isso q a 1a busca funciona e a paginação nãoqdo tu clicar pra navager na paginação, não estará enviando nada para o Request.form, e ele fica vazioassim, sua busca acha todos os registros!!!sacou?? dah uma corrigida nisso!!![]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

dimarcinhonão entendi muito tua dica, podes exemplificar por favor??

cara, sua string de SQL é:SQL = "SELECT * " _& "FROM contatos " _& "WHERE nome LIKE '%" & TiraAcento(Replace(nome, "'", "''")) & "%' " e a variável nome, tu puxa lá em cima como :nome = Request.form("nome")eh por isso q a 1a busca funciona e a paginação nãoqdo tu clicar pra navager na paginação, não estará enviando nada para o Request.form, e ele fica vazioassim, sua busca acha todos os registros!!!sacou?? dah uma corrigida nisso!!![]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim carasua busca eh baseada em alguma variável q está dentro do Request.Form()provavelmente a sua primeira busca, você completa um formulário, correto????daí, normalmente na paginação você apenas vai clicando em HYPERLINKS pra trocar, como você fezo problema, eh qdo você clica no hyperlink, você apenas passa a informação pra proxima pagina se for via QueryString.... nao estah ativando nenhum formuárioassim, qdo você vai navegar pela paginação, o ASP lê o Request.Form() vazio semprepor isso q nao retorna nada.....

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.