%
Option Explicit
Response.Expires = 0
%>
Pesquisa de Produtos
<% If Request.querystring("p") <> "" Then
'Relação dos produtos
Dim Conexao, palavra, qtsize, rsBusca, sqlProcura, varBusca, p, i, q
'Declarei uma variável nova chamada q para contar quantidade de registros
varBusca = Trim(Request.Form("pesquisa"))
if Len(varBusca) = 0 then
varBusca = Cstr(Request.QueryString("varBusca"))
end if
sqlProcura = "SELECT * FROM Busca WHERE Descricao LIKE '%" & varBusca & "%' "
sqlProcura = sqlProcura & "ORDER BY Nome"
Call abre_conexao
set rsBusca = server.createobject("ADODB.Recordset")
rsBusca.activeconnection = Conexao
rsBusca.source = sqlProcura
rsBusca.CursorType = 0
rsBusca.CursorLocation = 3
'pega uma variável (?qt=quntidade_de_registro_por_página) pra definir a quantidade pro página se ela não existir ele coloca com 10
if request("qt") <> null then
qtsize = request("qt")
else
qtsize = 10
end if
rsBusca.PageSize= qtsize
rsBusca.open
'temtei de tudo mas não consigo retornar a string de pesquisa, to um pouco sem tempo de ficar tentando mais
if varBusca <> null then
palavra = varBusca
else
palavra = request.form("pesquisa")
end if
%>
Ocorrências encontradas para: <%=palavra%>
<% 'A variável recebe a quantidade de registros encontrado
q = rsBusca.recordcount
if not rsBusca.eof then
p= Request.QueryString("p")
if (p> 0) then
rsBusca.AbsolutePage= p
else
p= 1
rsBusca.AbsolutePage= 1
end if
i=0
do while i < rsBusca.PageSize and not rsBusca.eof %>
" target="_blank"><%= rsBusca("Nome") %> - <%= rsBusca("Descricao") %>
<% rsBusca.Movenext
i=i+1
loop
response.write "Ocorrências encontradas : " & q & "
"
'variável quantpage (quantidade de página) quant (contado)
dim inicio,fim,quantpage,quant
inicio=(p-1)*rsBusca.PageSize+1
fim = inicio + i-1
response.write "Mostrando de " & inicio
response.write " até " & fim & "
"
quantpage = q / (rsBusca.PageSize)
'quantpage = Quantidade de registro total / quantidade de registro por página
'agora faço um teste pq se a última page não completar a quantidade certa de registro por página ela não retorna um valor inteiro
if quantpage > Int(quantpage) then
'se for diferente eu adiciono + 1 para mostrar a última página com uma quantidade de registro menor que quantidade de registro por página (PageSize)
quantpage = Int(quantpage) + 1
end if
'Contador recebe 1
quant = 1
response.write "Quantidades de página: " & quantpage & ""
if rsBusca.recordcount > 1 then %>
<% if p>1 then %>
Ocorrências Anteriores
<%else%>
Ocorrências Anteriores
<% end if %> |
<% 'Se a quantidade de páginas for maior que 1 ele faz um loop setando link para todas as páginas menos para a que está sendo mostrada no navegador
if quantpage > 1 then
do Until quant > quantpage
if Cint(p) = Cint(quant) then %>
<%=quant%>
<%else%>
<%=quant%>
<% end if
quant = quant + 1
loop
else %> 1 <% end if %> |
<% if Cint(p) < Cint(Quantpage) then %>
Próximas Ocorrências
<%else%>
Próximas Ocorrências
<% end if %>
<% end if %>
<%else%>
|
Não existem registros com este nome, por favor tente outra vez." |
<%end if%>
<%
rsBusca.Close
Call fecha_conexao
Set rsBusca = Nothing
%>
<%End If%>