Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
[/code]Olá pessoal, sou iniciante em ASP e tenho a seguinte dúvida:
Como faço pra listar os dados armazenados no banco?
Exemplo:
A página tem uma função "Select" da seguinte forma -
"SELECT * FROM reports WHERE id_cliente = id_cliente ORDER BY url;"
Quero que meus resultados apareçam dentro de uma tabela tipo:
____________________________
|ID Cliente | URL |
|1 | www.url1.com |
|2 | www.url2.com |
|3 | www.url3.com |
|___________________________ |
Como posso fazer?
AI ACHO Q ISSO VAI RESOLVER PRA você
<%SQL = "SELECT * FROM reports WHERE id_cliente = id_cliente ORDER BY url"SET RS = CONEXÃO.EXECUTE(SQL)%><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>ID</td> <td>URL</td> </tr> <% DO WHILE NOT RS.EOF %> <tr> <td><% = RS("id_cliente")%></td> <td><% = RS("URL")%></td> </tr> <% RS.MOVENEXT : LOOP %></table>
FALOU TÉ MAISPow Diego, pelas tags htm é isso mesmo, mas ele está me retornando o seguinte erro:
Erro de compilação do Microsoft VBScript (0x800A0408)
Caractere inválido
/im_asp/clientes/area.asp, line 18, column 14
SET RS = CONEXÃO.EXECUTE(SQL)
eu não manjo nadah de ASP, se der, me dá uma luz, dá uma explicada nesse código p mim^^!
Meu código ficou assim:
<%'String de conexão com o bancoDim objConn, objRs, strQuery, strConnection, id_cliente, id_repot, url, strDBPath, RSSet objConn = Server.CreateObject("ADODB.Connection")strDBPath = Server.MapPath("contato.mdb")objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"%><%SQL = "SELECT * FROM reports WHERE id_cliente = id_cliente ORDER BY url"SET RS = CONEXÃO.EXECUTE(SQL)%><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>ID</td> <td>URL</td> </tr> <% DO WHILE NOT RS.EOF %> <tr> <td><% = RS("id_cliente")%></td> <td><% = RS("URL")%></td> </tr> <% RS.MOVENEXT : LOOP %></table>AHH SIM CARA ESSE CONEXÃO AI É O NOME DA CONEXÃO COM O SEU BANCO DE DADOS
EU COLOKEI CONEXÃO PRA PRA você SABER
TA LA EM
SET RS = CONEXÃO .EXECUTE(SQL)
você SO VAI SUBISTITUIR ESSE NOME "CONEXÃO" PELO NOME Q você DEU PRA SUA CONEXÃO COM O BANCO ENTENDEU??
TÉ MAIS
<%'String de conexão com o bancoDim objConn, objRs, strQuery, strConnection, id_cliente, id_repot, url, strDBPath, RSSet objConn = Server.CreateObject("ADODB.Connection")strDBPath = Server.MapPath("contato.mdb")objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"%><%SQL = "SELECT * FROM reports WHERE id_cliente = id_cliente ORDER BY url"SET RS = objConn.EXECUTE(SQL)%><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>ID</td> <td>URL</td> </tr> <% DO WHILE NOT RS.EOF %> <tr> <td><% = RS("id_cliente")%></td> <td><% = RS("URL")%></td> </tr> <% RS.MOVENEXT : LOOP %></table>
coloque esse que deve funcionar
EXPLICANDO O CÓDIGO
AQUI CARA DA UMA OLHADA IA E V SE ENTENDE OK
<%
'AQUI O ESTAMOS ATRIBUINDO PARA UMA VARIAVE SQL TUDO O Q ESTA DENTRO DAS "ASPAS" OK
SQL = "SELECT * FROM reports WHERE id_cliente = id_cliente ORDER BY url"
'AQUI ESTAMOS EXECUTANDO O BANCO DE DADOS COM AS INFORMAÇOES ATRIBUIDA PARA O SQL
'AQUI TMBM CRIA UMA RECORTSET
SET RS = CONEXÃO.EXECUTE(SQL)
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>ID</td>
<td>URL</td>
</tr>
<%
'AQUI ESTAMOS FAZENDO UM LAÇO DE REPETIÇÃO ATÉ O FIM DO ARQUIVO EOF (END OF FILE)
DO WHILE NOT RS.EOF
%>
<tr>
<td><% = RS("id_cliente")%></td>
<td><% = RS("URL")%></td>
</tr>
<%
'AQUI MOVE PARA O PROXIMO REGISTRO DO BANCO E FAZ O LOOP ALI EM CIMA (RS("URL E ID_CLIENTE")) É OS VALORES RECEBIDOS PELO RECORTSET
RS.MOVENEXT : LOOP
%>
</table>
ENTENDEU GAROTO!!!
TÉ MAIS
Isso mesmo! \o/ É esse o lance...Agora, a outra coisa que tentei fazer é o segunte:Tenho um form de login, o form "login.asp" envia o nome e a senha do usuário para o arquivo "logar.asp" que verifica os dados no banco e libera o acesso para a página protegida "area.asp". Eu preciso de alguma forma, capturar o "id_cliente" do cliente logado e enviar para essa "area.asp", onde está o código que vcs me ajudaram a mexer... como posso pegar esse valor e jogar numa variável? como posso pegar essa variável e jogar para "area.asp"?
intão cara deu certo aquele??intaum pra isso q você ta pedindo agora é o seguinte...naum hora q você passar os valores pra pagina logar você tem q ver no banco se o login e a senha são validos se sim você vai tem q criar um cookie com o nome do usuario e em todas as paginas você vai ter q comparar o usuario logado com o coockie e tmbm criar uma sessão pra eles ok
Beleza, já criei a página de login, ela já está funcionando.
Meu script que compara os dados enviados com o banco é esse aki:
<%Dim contato,senha,conexao,constr,rscontato = request.Form("contato")senha = request.Form("senha")set conexao = createobject("AdoDb.connection")constr = "Driver={Microsoft Access Driver (.mdb)};DBQ="& server.MapPath("contato.mdb")conexao.open constrset rs = conexao.execute("SELECT FROM clientes WHERE contato='"&contato&"' AND senha='"&senha&"'")if rs.eof thenresponse.Redirect("errou.asp")elseresponse.Cookies("logado")=loginresponse.cookies("logado").expires="31/12/2010"'response.Redirect ""& rs("area.asp")response.Redirect("area.asp")end if%>
Já criei o coopkie "login", como posso criar a session agora? e como envio essa session pra outra pág?
para criar session:session("nomdasession') = valorexemplosession("usuario")="joao" para recuperar o valor da session:variavel=session("nomedasession")exemplo:strNomeusuario=session("usuario")
Valeu pela dica Jonathan, mas acho que fiz algo errado, não consigo filtrar por essa variável de jeito nenhum... Olha o bloco como está:
'Crio o cookie com o nome do contatoresponse.Cookies("logado")=contatoresponse.cookies("logado").expires="31/12/2010"'Crio a variável id_clienteDim id_cliente'Digo que o conteúdo de id_cliente é o que está no bancoid_cliente = RS("id_cliente")'Crio a session - sid_clientesession("sid_cliente") = id_cliente
na página que recebe ficou assim:
<%'Recupero a sessionid_cliente = session("sid_cliente")'Faço a busca no bancoSQL = "SELECT * FROM reports WHERE id_cliente = id_cliente ORDER BY url"SET RS = objConn.EXECUTE(SQL)%><div align="center"><img src="logo.jpg" width="250" height="99"> </div><table width="70%" border="0" align="center" cellpadding="0" cellspacing="0" class="t01"> <tr> <td bgcolor="#FFFFCC"><em><strong>Selecione o mês para extrato</strong></em></td> </tr> <% DO WHILE NOT RS.EOF %> <tr> <td> <em> <strong> <a href="<% = RS("URL")%>"> <% = RS("mes")%> </a> </strong> </em> </td> </tr> <% RS.MOVENEXT : LOOP %></table>
id_cliente é justamente o que eu uso pra filtrar a busca, mas mesmo assim ele exibe todos os resultados.
cara até agora eu naum entendi o q você quer fazer me add ai no msn q eu vejo se posso te ajudar beleza té mais
Olá pessoal, to postando pra agradecer ao meu amigo Diego Taubaté, graças a ajuda dele consegui concluir meu projeto.
Segue abaixo o código de validação e seleção de resultados da minha página.
logar.asp
<%'Esta página recebe o login e senha de um form'e faz a validação no banco.'Aqui, declaramos as variáveisDim contato,senha,conexao,constr,rs'Aqui, recebemos os dados recebidos pelo form e gravamos nas respectivas variáveiscontato = request.Form("contato")senha = request.Form("senha")'Aqui, fazemos a conexão com o banco...set conexao = createobject("AdoDb.connection")constr = "Driver={Microsoft Access Driver (.mdb)};DBQ="& server.MapPath("contato.mdb")conexao.open constr'...e aqui validamos o loginset rs = conexao.execute("SELECT FROM clientes WHERE contato='"&contato&"' AND senha='"&senha&"'")'se a busca chega ao final da tabela sem sucesso então...if rs.eof then'... o usuário é redirecionado a uma página de erroresponse.Redirect("errou.asp")'senão...else'caso haja sucesso, criamos um cookie "logado"response.Cookies("logado")=login'determinamos quando o cookie vai expirarresponse.cookies("logado").expires="31/12/2010"'e agora redirecionamos para a página protegida'enviando o código que será usado na pesquisa da 'próxima página '?cod="&rs("id_cliente")&"'response.Redirect("area.asp?cod="&rs("id_cliente")&"")end if%>
area.asp
'Esta é a página protegida que filtra os 'dados referentes ao cliente atravéz de um'atributo recebido da "logar.asp<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%><%'Este script evita que a página seja acessada sem 'o usuário estar logadocod = request.QueryString("cod")If Request("HTTP_REFERER") = "" Then response.Redirect("errou.asp") Response.EndEnd If%><link rel="stylesheet" href="style.css"><%'Conectando com o banco...Dim objConn, objRs, strQuery, strConnection, id_cliente, id_repot, url, strDBPath, RSSet objConn = Server.CreateObject("ADODB.Connection")strDBPath = Server.MapPath("contato.mdb")objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & ";"%><%'Aqui, usamos um SELECT para filtrar os dados do 'usuário, utilizando o parâmetro recuperado da 'página anterior '?cod="&rs("id_cliente")&"'SQL = "SELECT * FROM reports WHERE id_cliente = "&cod&" ORDER BY url"SET RS = objConn.EXECUTE(SQL)%><div align="center"><img src="logo.jpg" width="250" height="99"> </div><table width="70%" border="0" align="center" cellpadding="0" cellspacing="0" class="t01"> <tr> <td bgcolor="#FFFFCC"><em><strong>Código</strong></em></td> <td bgcolor="#FFFFCC"><em><strong>Selecione o mês para extrato</strong></em></td> </tr> <% DO WHILE NOT RS.EOF %> <tr> <td> <em> <strong> <% = RS("id_cliente")%> </strong> </em> </td> <td> <em> <strong> <a href="<% = RS("URL")%>"> <% = RS("mes")%> </a> </strong> </em> </td> </tr> <% RS.MOVENEXT : LOOP %></table>É isso aí pessoal, muitíssimo obrigado pela força!
você tem que usar uma estrutura de repetição, nesse caso pode ser o while, desta forma
do while not rs.eof 'enquanto o recordset não chegar no fim response.write(rs("url")) 'exibe os dados no recordsetresponse.write("<br>")'adiciona a tag <br> do html para gerar uma nova linhars.movenext'move para o proximo registro do recordsetloop'se ainda não chegou no fim, então repete desde o while
não esqueça de executar o recorset antes do do while!