Ir para conteúdo

Arquivado

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

rsilva10

paginacao asp por select

Recommended Posts

Boa noite galera.

Minha duvida e o seguinte:

Tenho uma pagina em html na qual é possivel fazer uma busca por opcao. Se eu escolho a opcao referencia, é gerado a pagiacao normal, baseado na palavra, mas quando eu clico no link da proxima pagina, é retornado todos os valores. alguem sabe como acrescentar a variavel da busca no link "proximo" .

 

<html>
<body>
<img src=images/logo.png>
<form action=buscando.asp method=get>
Procurar por: <select name=campo>
<option>referencia</option>
<option>tipo</option>
<option>ano</option>
<option>cor</option>
<br>
Informe o criterio de busca
<input type=text name=criterio>
<input type=submit value=buscar>
</form>
</body>
</html>

----------------------------------------------------------------------------------

 

 

 

 

 

 

 

 

<%
set DB = Server.CreateObject("Adodb.Connection")
DB.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.MapPath("bd.mdb")
Set RS = Server.CreateObject("Adodb.RecordSet")
sql="select * from produtos"
RS.PageSize = 3
if request("campo") = "referencia" Then
c=request("criterio")
sql = sql & " where referencia like '%" & c & "%'"
end if
RS.Open sql, DB,3,3
If RS.EOF then
Response.Write "Nenhum registro encontrado!"
Response.End
Else
If Request.QueryString("pagina")="" then
intpagina=1
Else
If Cint(Request.QueryString("pagina"))<1 then
intpagina=1
Else
If Cint(Request.QueryString("pagina"))>RS.PageCount then
intpagina=RS.PageCount
Else
intpagina=Request.QueryString("pagina")
End If
End if
End if
End if
RS.AbsolutePage=intpagina
intrec=0
%>
Pagina <%=intpagina%> de <%=RS.PageCount%></p>
</b>
<div align="center">
<center>
<%
While intrec<RS.PageSize and not RS.EOF
%>
<img src="<%=RS("foto")%>"><br>
<%
Rs.movenext
intrec=intrec+1
Wend
%>
</center>
</div>
<br>
<div id="count" align="center">
<%
If intpagina > 1 then
Response.Write "<a href=""buscando.asp?pagina=" & intpagina-1 & """>Anterior</a>"
End If
For i=1 to RS.PageCount
If i = Cint(intpagina) then
Response.Write " " & i
else
'o engraçado é que esse link funcionA caso eu faça um simples busca sem o select.
Response.Write " <a href=""buscando.asp?pagina=" & i &"&criterio="&c& """>" & i & "</a>"
End If
Next
If strcomp(intpagina,RS.PageCount)<> 0 then
Response.Write " <a href=""buscando.asp?pagina=" & intpagina+1 & """>Próxima</a>"
End If
%>
</body>
</html>

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por FabianoSouza
      Eu preciso exibir duas informações em minha consulta:
      1) A quantidade de pessoas inscritas numa turma de treinamento (isso é feito com um simples COUNT)
      2) Uma flag de excesso de inscrições na turma. Seria obtido pela comparação entre a quantidade máxima permitida (já existe esse campo) e o COUNT feito acima.
       
      Até aqui sem problemas.
       
      O que quero é evitar fazer duas contagens (1 para saber a quantidade de inscritos, e outra para gerar a flag de excesso de inscrições).
       
      Há uma forma de utilizar UMA contagem para atender as duas necessidades?
       
      Meu código está assim:
       
      ... --AQUI FAZ A COMPARAÇÃO PARA GERAR A FLAG DE EXCESSO DE INSCRIÇÕES , CASE WHEN (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) > T.lotacaoMax Then T.nome + '&nbsp;'+'<span class=%22icon-aviso fcolor-critico%22 style=%22font-size:18px%22 title=Excesso&nbsp;de&nbsp;inscrições></span>' --AQUI FAZ A CONTAGEM DE INSCRIÇÕES , (SELECT COUNT(*) FROM dbo.tab AS ITT WHERE ITT.codTurmaDeTreina = T.id) AS 'Inscrições'  
    • Por FabianoSouza
      Possuo uma coluna de data.
      Eu gostaria que os registros com datas futuras aparecessem no topo do meu select, em relação aos demais registros.
      Em seguida, gostaria que somente esses registros com datas futuras ficassem em ordem crescente.
      Algo como 
       
      João  | 16/11/2023
      Maria | 17/11/2023
      José  |  20/11/2023
       
      -----------------------------
      (demais registros da base)
      Antônio   |  20/05/2023
      Rosa        | 15/08/2023
      Cida         | 15/10/2022
      Pedro      |  20/05/2021
      Paulo      |  14/11/2020
       
      O select seria esse.
      select dbo.formataData(ET.dataInicial) AS 'data' FROM dbo.tab AS ET GROUP BY ET.dataInicial  
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por Negrito
      Olá Pessoal, 
       
      Converti o banco de dados de uma app em ASP Classico de MSSQL para MySQL para redução de custos e percebi que alguns componentes ou recursos não estão mais funcionando devido a não compatibilidade com o MySQL , como por exemplo a função : RecordCount
       
      Já consegui converter e atualizar 95% de aplicação para rodar com o MySQL, mas tem 1 item que esta tirando meu sono e após dias pesquisando, resolvi pedir ajuda.
       
      Segue o meu codigo abaixo , onde estou com problema no resultado dessa operação:
       
      <%
      ...
      Set RS = Server.CreateObject("ADODB.Recordset")
      RS.CursorLocation = 3
      RS.CursorType = 3
      RS.ActiveConnection = Cn
      RS.Open strSQL, Cn, 3, 3
      RS.PageSize = 25
      RS.CacheSize = RS.PageSize
      intPageCount = RS.PageCount
      intRecordCount = RS.RecordCount
          If NOT (RS.BOF AND RS.EOF) Then
      If CInt(intPage) > CInt(intPageCount) Then intPage = intPageCount
          If CInt(intPage) <= 0 Then intPage = 1
              If intRecordCount > 0 Then
                  RS.AbsolutePage = intPage
                  intStart = RS.AbsolutePosition
                  If CInt(intPage) = CInt(intPageCount) Then
                      intFinish = intRecordCount
                  Else
                      intFinish = intStart + (RS.PageSize - 1)
                  End if
              End If
          If intRecordCount > 0 Then
              For intRecord = 1 to RS.PageSize
          QntExibicoes = QntExibicoes + Rs.fields("views")
      ...
      %>
       
       
      Já percebi que a função RecordCount não pode ser usada com o MySQL ou pelo menos não é compativel.
       
      A paginação esta funcionando ! 
      Porem , não consigo fazer ele calcular a quantidade de linhas (rows) do MySQL com a função RecordCount e acredito que possa ter alguma outra função que não esta compativel , mas como não conheço MySQL , não posso afirmar.
       
      Enfim, algum pode me dar uma luz ?
       
      Desde já agradeço pela atenção.
       
      Obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.