Ir para conteúdo

POWERED BY:

Arquivado

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

Gilberto Jr

[Resolvido] Listagem de Cadastro de Usuarios

Recommended Posts

Olá, boa tarde a todos.

pessoal eu fiz uma paginação que lista os usuarios. Coloquei pra apenas um item por pagina e com isso vai avançando.

Quando entra na pagina de usuarios tem um input type="text" pra digitar o nome do usuario, se clicar em pesquisar direto ele tras todos os usuarios e se digitiar parte do nome ele tras todos os usuarios que contenha aqueles caracteres.

 

Só que esta acontecendo o seguinte, se eu colocar pra trazer apenas o usurios que esta ativos SELECT * FROM USUARIOS WHERE STATUS=TRUE se nao for encontrado nenhum usuario ativo ele fica fazendo o loop direto e nao para no response.end().

 

Se eu deixa para trazer todos os usuarios sem validar se esta ativo ou não funciona pois de qualquer forma ele vai trazer pelo menos um usuário.

 

o codigo ficou da seguinte forma

%>
<!--#include file="config.asp" -->
<%
call connect
%>
<%
dim msg, q, fim
q = request.QueryString("pesquisa")
caminho = "E:\Sites\atecEngenharia\dados\atec.mdb"

set Conn = server.CreateObject("ADODB.Connection")

Conn.connectionstring="driver={Microsoft Access Driver (*.mdb)};Dbq="&caminho
Conn.open

Set RS = Server.CreateObject("adodb.recordset")
RS.pagesize=1
'se a querystring "q" for diferente de "Digite o nome..." ele tras apenas os dados que contenha o valor da querystring.
SQL = "SELECT * FROM TB_USUARIO WHERE NOME LIKE '%"&q&"%' AND LOGIN<>'administrador' AND STATUS=TRUE ORDER BY NOME"

'se a querystring "q" for igual igual a "Digite o nome..." ele tras todos o usurios que estiver ativo
if q="Digite o nome..." then
SQL="SELECT * FROM TB_USUARIO WHERE LOGIN<>'administrador' AND STATUS=TRUE ORDER BY NOME"
end if

RS.Open SQL,Conn,3,3
total  = RS.PageCount
primeira = total-total
IF RS.EOF then
'se o valor da querystring "q" for diferente de "Digite o nome..." e não for encontrado nenhuma informação ele mostra a mensagem abaixo e redireciona para a pagina user.asp.
response.write ("<script>alert('Nenhum resgistro encontrado com o nome ("&q&")!');location='users.asp';</script>")
Response.End() 'paramos o programa
ELSE
  'Definindo em qual pagina o visitante está
  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
%>

desde ja eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Só que esta acontecendo o seguinte, se eu colocar pra trazer apenas o usurios que esta ativos SELECT * FROM USUARIOS WHERE STATUS=TRUE se nao for encontrado nenhum usuario ativo ele fica fazendo o loop direto e nao para no response.end().
Não há nenhum loop nesse trecho de código.

Esse seu script tem o nome de users.asp? Se for isso o motivo do loop é que o seu Alert JS está redirecionando para o mesmo script e ele está sendo executado novamente. No lugar do Alert use uma mensagem na tela mesmo, sem Response.END.

 

Não se esqueça de fechar seus RecordSets e destruir suas Conexões para não sobrecarregar o servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este linkde exemplo, você tem a opção de listar todos os usuarios

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.