Jump to content


Photo

Erro Na Paginação


  • Faça o login para participar
4 replies to this topic

#1 lone

lone

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 26/10/2003, 14:34

Galera consegui fazer a paginação com a ajuda do pessoal do forum, mas tem um erro esquisito, agora o sistemas lista todos os registro da variavel login, mas quando navego entre as paginas ele busca também os outros registro que não foram solicitados, ou seja quando clico no link para ir para a proxima pagina ele automaticamente busca os registros que estão no bd , gostaria de saber como travar a paginação só nos registros da variavel login,


<%
'Paginação de Registros
n_page=request("n_page")
If n_page="" Then n_page = 1

set db = server.CreateObject("ADODB.Connection")
db.Open "DBQ=C:\inetpub\wwwroot\monitoria\monitoria.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set RecSet=Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT * FROM monitorias WHERE re LIKE '%" & login & "%'", db, 3,3 
IF RecSet.EOF then 
   Response.Write "nenhum registro encontrado"
   Response.End 'paramos o programa
ELSE
RecSet.PageSize = 1 'registros por página
RecSet.AbsolutePage = Cint(n_page) 'redireciona os registros para a página
contador=0
do While not RecSet.EOF AND contador < RecSet.PageSize
contador=contador+1
response.write "<font face=verdana size=2><b>"
response.write RecSet("nome")&"</b><BR>"
%> 
<table align="center" cellspacing=4 class="quadro" cellpading=0>
  <tr bgcolor=#EBEBEB> 
    <td><font color="#0000FF">Data <%=RecSet("data")%></font></td>
    <td>&nbsp;</td>
    <td><font size="2">&nbsp;</font></td>
    <td><font size="2">&nbsp;</font></td>
  </tr>
  <tr> 
    <td bgcolor="#EBEBEB"><font color="#009999" size="2">01 - Abertura</font></td>
    <td bgcolor="#EBEBEB"><font size="2"><%=RecSet("abertura")%></font></td>
    <td bgcolor="#EBEBEB"><font color="#009999" size="2">02 - Levantamento das 
      Necessidades</font></td>
    <td bgcolor="#EBEBEB"><font size="2"><%=RecSet("levantamentonecessidades")%></font></td>
  </tr>
  <tr bgcolor="#009999"> 
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr> 
    <td colspan=4 align=center> </td>
  </tr>
</table>
<%
RecSet.MoveNext
loop 

response.write "<br>"

For navega= 1 to RecSet.PageCount
If navega = Cint(n_page) Then 
response.write "<font face=verdana size=2><b>"
response.write navega
Else
response.write "<font face=verdana size=2><b>"
response.write space(1) & "<a href=paginacaoteste2.asp?n_page=" & navega & ">" & navega & "</a>" & space(1)
End If
Next

response.write "<br><br>"

anterior = n_page - 1
proxima = n_page + 1

If anterior > 0 Then
response.write "<font face=verdana size=2><b>"
response.write "<a href=paginacaoteste2.asp?n_page="&anterior&">Anterior</a>" 
End If

If proxima < navega Then
response.write "<font face=verdana size=2><b>"
response.write space(1) & "<a href=paginacaoteste2.asp?n_page="&proxima&">Próxima</a>" 
End If
End If

%> 

O homem sabio compartilha o que sabe, o tolo leva o conhecimento para o esquecimento.

#2 UweedI

UweedI

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado

Posted 29/10/2003, 18:29

blz cara
é o seguinte: quando vc faz uma busca utilizando like ele devolve todos os resultados que tenham na string o valor do like
exemplo:
banco= login1
digito =1
no resultado vai aparecer o login1 tbm, pois nele vc tem a string 1 tbm

acredito que deve estar retornando mais de um resultado por causa disso
para testar se é isso mesmo troque
RecSet.Open "SELECT * FROM monitorias WHERE re LIKE '%" & login & "%'", db, 3,3
por
RecSet.Open "SELECT * FROM monitorias WHERE re = '%" & login & "%'", db, 3,3

[ ]"s

#3 lone

lone

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 30/10/2003, 16:33

blz cara
é o seguinte: quando vc faz uma busca utilizando like ele devolve todos os resultados que tenham na string o valor do like
exemplo:
banco= login1
digito =1
no resultado vai aparecer o login1 tbm, pois nele vc tem a string 1 tbm

acredito que deve estar retornando mais de um resultado por causa disso
para testar se é isso mesmo troque
RecSet.Open "SELECT * FROM monitorias WHERE re LIKE '%" & login & "%'", db, 3,3
por
RecSet.Open "SELECT * FROM monitorias WHERE re = '%" & login & "%'", db, 3,3

[ ]"s

Cara eu corrigi o sistema da busca mas o erro pra navegar entra as paginas continua o mesmo

até transformei a variavel login numa variavel de sessão e mesmo assim não consigo passar ela para as proximas paginas da navegação elá continua dando o mesmo erro,

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (operador faltando) na expressão de consulta 're='.
/monitoria/paginacaoteste4.asp, line 13


ou seja não estou conseguindo passar a variavel para as demais paginas é ele não acha a variavel de sessão que coloquei não estou conseguindo achar o erro. agradeço a ajuda


<%
Dim login
login = request.form("login") 'recuperando o valor para login numerico
session("aut") = login ' transformando login numa variavel de sessão

n_page=request("n_page")
If n_page="" Then n_page = 1

set db = server.CreateObject("ADODB.Connection")
db.Open "DBQ=C:\inetpub\wwwroot\monitoria\monitoria.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set RecSet=Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT * FROM monitorias WHERE re= "& login & "", db, 3,3

IF RecSet.EOF then 
 Response.Write "nenhum registro encontrado"
 Response.End 'paramos o programa
ELSE
RecSet.PageSize = 1 'registros por página
RecSet.AbsolutePage = Cint(n_page) 'redireciona os registros para a página
contador=0
do While not RecSet.EOF AND contador < RecSet.PageSize
contador=contador+1
response.write "<font face=verdana size=2><b>"
response.write RecSet("nome")&"</b><BR>"

RecSet.MoveNext
loop 

response.write "<br>"

For navega= 1 to RecSet.PageCount
If navega = Cint(n_page) Then 
response.write "<font face=verdana size=2><b>"
response.write navega
Else
response.write "<font face=verdana size=2><b>"
response.write space(1) & "<a href=paginacaoteste4.asp?login=" & session("aut") & "&n_page=" & navega & ">" & navega & "</a>" & space(1)
End If
Next

response.write "<br><br>"

anterior = n_page - 1 
proxima = n_page + 1 

If anterior > 0 Then
response.write "<a href=paginacaoteste4.asp?n_page="&anterior&"&login =" & session("aut") & ">Anterior</a>" 
End If

If proxima < navega Then
response.write space(1) & "<a href=paginacaoteste4.asp?n_page="&proxima&"&login =" & session("aut") & ">Próxima</a>" 
End If
End If
%> 

O homem sabio compartilha o que sabe, o tolo leva o conhecimento para o esquecimento.

#4 UweedI

UweedI

    Novato no fórum

  • Usuários
  • 20 posts
  • Sexo:Não informado

Posted 30/10/2003, 17:01

tenta deste jeito aqui

<%
Dim login
login = request.form("login") 'recuperando o valor para login numerico

if login="" then
login= request.querystring("login")
end if

n_page=request("n_page")
If n_page="" Then n_page = 1

set db = server.CreateObject("ADODB.Connection")
db.Open "DBQ=C:\inetpub\wwwroot\monitoria\monitoria.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set RecSet=Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT * FROM monitorias WHERE re= "& login & "", db, 3,3

IF RecSet.EOF then
Response.Write "nenhum registro encontrado"
Response.End 'paramos o programa
ELSE
RecSet.PageSize = 1 'registros por página
RecSet.AbsolutePage = Cint(n_page) 'redireciona os registros para a página
contador=0
do While not RecSet.EOF AND contador < RecSet.PageSize
contador=contador+1
response.write "<font face=verdana size=2><b>"
response.write RecSet("nome")&"</b><BR>"

RecSet.MoveNext
loop

response.write "<br>"

For navega= 1 to RecSet.PageCount
If navega = Cint(n_page) Then
response.write "<font face=verdana size=2><b>"
response.write navega
Else
response.write "<font face=verdana size=2><b>"
response.write space(1) & "<a href=paginacaoteste4.asp?login=" & login & "&n_page=" & navega & ">" & navega & "</a>" & space(1)
End If
Next

response.write "<br><br>"

anterior = n_page - 1
proxima = n_page + 1

If anterior > 0 Then
response.write "<a href=paginacaoteste4.asp?n_page="&anterior&"&login =" & login & ">Anterior</a>"
End If

If proxima < navega Then
response.write space(1) & "<a href=paginacaoteste4.asp?n_page="&proxima&"&login =" & login & ">Próxima</a>"
End If
End If
%>

#5 lone

lone

    Turista

  • Usuários
  • 51 posts
  • Sexo:Não informado

Posted 06/11/2003, 11:20

tenta deste jeito aqui

<%
Dim login
login = request.form("login") 'recuperando o valor para login numerico

if login="" then
login= request.querystring("login")
end if

n_page=request("n_page")
If n_page="" Then n_page = 1

set db = server.CreateObject("ADODB.Connection")
db.Open "DBQ=C:\inetpub\wwwroot\monitoria\monitoria.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set RecSet=Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT * FROM monitorias WHERE re= "& login & "", db, 3,3

IF RecSet.EOF then
Response.Write "nenhum registro encontrado"
Response.End 'paramos o programa
ELSE
RecSet.PageSize = 1 'registros por página
RecSet.AbsolutePage = Cint(n_page) 'redireciona os registros para a página
contador=0
do While not RecSet.EOF AND contador < RecSet.PageSize
contador=contador+1
response.write "<font face=verdana size=2><b>"
response.write RecSet("nome")&"</b><BR>"

RecSet.MoveNext
loop

response.write "<br>"

For navega= 1 to RecSet.PageCount
If navega = Cint(n_page) Then
response.write "<font face=verdana size=2><b>"
response.write navega
Else
response.write "<font face=verdana size=2><b>"
response.write space(1) & "<a href=paginacaoteste4.asp?login=" & login & "&n_page=" & navega & ">" & navega & "</a>" & space(1)
End If
Next

response.write "<br><br>"

anterior = n_page - 1
proxima = n_page + 1

If anterior > 0 Then
response.write "<a href=paginacaoteste4.asp?n_page="&anterior&"&login =" & login & ">Anterior</a>"
End If

If proxima < navega Then
response.write space(1) & "<a href=paginacaoteste4.asp?n_page="&proxima&"&login =" & login & ">Próxima</a>"
End If
End If
%>

Cara eu estava apanhando da paginação mas com a sua ajuda e do pessoal do forum funcionou normalmente, brigadão, só demorei em responder porque minha placa mãe queimou, valeu :D


<%
Dim login
login = request.form("login") 'recuperando o valor para login numerico

if login="" then
login= request.querystring("login")
end if

n_page=request("n_page")
If n_page="" Then n_page = 1

set db = server.CreateObject("ADODB.Connection")
db.Open "DBQ=C:\inetpub\wwwroot\monitoria\monitoria.mdb;Driver={Microsoft Access Driver (*.mdb)}"
Set RecSet=Server.CreateObject("ADODB.Recordset")
RecSet.Open "SELECT * FROM monitorias WHERE re= "& login & "", db, 3,3

IF RecSet.EOF then
Response.Write "nenhum registro encontrado"
Response.End 'paramos o programa
ELSE
RecSet.PageSize = 1 'registros por página
RecSet.AbsolutePage = Cint(n_page) 'redireciona os registros para a página
contador=0
do While not RecSet.EOF AND contador < RecSet.PageSize
contador=contador+1
response.write "<font face=verdana size=2><b>"
response.write RecSet("nome")&"</b><BR>"

RecSet.MoveNext
loop

response.write "<br>"

For navega= 1 to RecSet.PageCount
If navega = Cint(n_page) Then
response.write "<font face=verdana size=2><b>"
response.write navega
Else
response.write space(1) & "<a href=paginacaoteste7.asp?login=" & login & "&n_page=" & navega & ">" & navega & "</a>" & space(1)
End If
Next

response.write "<br><br>"

anterior = n_page - 1
proxima = n_page + 1

If anterior > 0 Then
response.write "<a href=paginacaoteste7.asp?login=" & login & "&n_page=" & anterior & ">Anterior</a>"
End If

If proxima < navega Then
response.write space(1) & "<a href=paginacaoteste7.asp?login=" & login & "&n_page=" & proxima & ">proxima</a>"
End If
End If
%> 

O homem sabio compartilha o que sabe, o tolo leva o conhecimento para o esquecimento.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq