Foi muito importante o seu tutorial pra mim...
Gostaria de saber se tem como eu efetuar uma busca em uma tabela por exemplo produtos e junto pegar os dados da tabela fornecedores (tabela no access).
Obrigado

Posted 12/09/2004, 21:51
Posted 12/09/2004, 21:56
Posted 13/09/2004, 14:38
Esta é a minha pagina de resultados<!--#include file="cn.asp"-->
<%
busca = request("buscar")
num = request("num")
set ls = Server.CreateObject("ADODB.RecordSet")
if num = "*" then
s = "select * from produtos,fornecedores where produto LIKE '%"&busca&"%' OR modelo LIKE '%"&busca&"%' OR descricao LIKE '%"&busca&"%' OR endereco LIKE '%"&busca&"%'"
else
s = "select top " & num & " * from produtos where produto LIKE '%"&busca&"%' OR modelo LIKE '%"&busca&"%' OR fornecedor LIKE '%"&busca&"%'"
end if
ls.Open "select Count(*) as conta from produtos where descricao LIKE '%" & busca & "%' OR modelo LIKE '%" & busca & "%'", cn
set rs = cn.Execute(s)
contar = ls("conta")
if NOT rs.EOF then
%>
<center><b>Resultado(s) encontrato(s) na sua busca</b><font color="red"> <%=contar%></font></center>
<p>
Palavra pesquisada: <b><%=busca%></b>
<p>
</font><font size="2" face="verdana"><p>
<!--final da contagem-->
<%
while not rs.EOF
%>
<%=rs("fornecedor")%></A></ADDRESS>
<%=rs("produto")%></A>
<%=rs("modelo")%></A>
<%=rs("descricao")%></A>
<FONT COLOR="#800000"><%=rs("valor")%></A></FONT>
<hr width="100%">
<%
rs.MoveNext
Wend
else
response.write "Nenhum registro encontrado!<p></a>"
end if
ls.Close
cn.Close
set ls = nothing
%>
Edição feita por: LeoB, 15/09/2004, 13:00.
Posted 08/01/2005, 09:02
Posted 08/01/2005, 15:16
strSql = "SELECT * FROM cadastro WHERE nome LIKE '%"&Busca&"%'" or outro_campo LIKE '%"&outro_campo&"%'" objRS.Open strSQL,DB,1,1
Posted 08/01/2005, 17:00
Posted 09/01/2005, 15:02
hehe. mas uam vez, madô bem tio.Olá povo.. então.. vamos aprender um pouco mais sobre ASP? bem, nosso tuto de hj falará sobre "Fazer busca no banco de dados" irei mostrar apenas uma forma de como se fazer buscas no banco de dados, podendo ser feito de outras formas.. então... cabe a vcs darem uma estudada mais afundo depois...
Então tá... Trabalharemos neste tuto com duas páginas uma BUSCA.asp e uma RESULTADO.asp
Então, vamos primeiro analizar a BUSCA.asp<table width="195" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="195" height="24" valign="top"> <form action="resultado.asp" method="post"> <input type = text name="buscando" size=11 style= "font-family : Verdana; font-size : 11px; width : 100px;"> <input type="submit" name="Submit" value="Buscar"> </form></td> </tr> </table>
Este código irá gerar um campo para vc digitar a palavra q irá ser buscada no DB, e um botão de buscar para disparar a ação... Notem que o campo gerado para fazer a busca tem o nome de buscando temos que prestar atenção neste nome, afinal ele será usado como variável no código da página resultado.
Notem que no action chamamos a página resultado.asp que irá mostrar os dados que foram achados de acordo com os critérios apresentados.
Então acho que sobre esta página, oq tinhamos para falar era isto, agora vamos a página RESULTADO.asp
Código RESULTADO.asp<% Busca = Trim(Request.form("buscando")) %> <% set DB = createobject("adodb.connection") constr = "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("banco.mdb") DB.open constr Set objRS = Server.CreateObject("ADODB.Recordset") %> <% function TiraAspas(str) str = replace(str,"'","""") TiraAspas = str End function %> <% Busca=TiraAspas(Busca) strSql = "SELECT * FROM cadastro WHERE nome LIKE '%"&Busca&"%'" objRS.Open strSQL,DB,1,1 %> Resultado da busca<br> <% if (len(busca)<=2) then Response.write("Digite uma palavra com o mínimo de 3 letras para fazer a busca.") ElseIf (Busca = "") then Response.write("Você precisa escrever uma palavra para fazer uma busca.") ElseIf (objRS.EOF = true) then response.write "Sua busca por <b>"&Busca&"</b> não retornou nenhum resultado, por favor tente ser menos específico." Else do While not objRS.EOF %> <%=objRS(TiraAspas("nome"))%><br> <% objRS.MoveNext Loop End IF %>
Então agora vamos entender um pouco deste código...<% Busca = Trim(Request.form("buscando")) %>
noten que aqui recupero os dados digitados anteriormente como eu havia falado...<% set DB = createobject("adodb.connection") constr = "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("banco.mdb") DB.open constr Set objRS = Server.CreateObject("ADODB.Recordset") %>
aqui como já foi explicado em outros tutos, seria a parte de conexão com o banco de dados, supondo que vc já tenha um banco de dados pronto com o nome de banco.mdb
e supondo que vc tenha uma tabela neste banco com o nome de cadastro e dentro desta tabela tenha um campo nome para podermos buscar o nome de pessoas cadastradas...<% function TiraAspas(str) str = replace(str,"'","""") TiraAspas = str End function %>
aqui nesta parte do código, foi feita uma pequena função para evitar erros na busca, afinal se vc digitar aspas simples ( ' ) em qualquer campo, ele vai entender como sendo parte do código e vai gerar um erro então foi feita uma função para transformar um aspas simples ( ' ) em aspas composta ( " )
Mas bem, a função replace seria para um estudo mais aprimorado de uma próxima vez.. mas seria muito bom, vc já ir estudando sobre esta função que irá te poupar algumas dores de cabeça...<% Busca=TiraAspas(Busca) strSql = "SELECT * FROM cadastro WHERE nome LIKE '%"&Busca&"%'" objRS.Open strSQL,DB,1,1 %>
então, aqui dizemos onde ele vai procurar o nome que nós fizemos a busca... e colocamos a função de tirar as aspas simples ( ' )
então entendendo de uma forma que num tem como não entender
strSql = "SELECT * FROM cadastro WHERE nome LIKE '%"&Busca&"%'"
Seleciona da tabela cadastro onde o campo nome tenha palavras usadas na busca.
Viram, é bem simples de se entender...
Resultado da busca<br>
daqui para baixo iremos mostar o que foi buscado...if (len(busca)<=2) then Response.write("Digite uma palavra com o mínimo de 3 letras para fazer a busca.")
para nossa busca não ficar meio esquisita, tipo digitar a letra A e aparecer todos os nomes que possuam letra a, fiz esta regra, que a busca terá que ser digitada no minimo 3 letras para ser feita, caso contrário, será mostrada uma mensagem...ElseIf (Busca = "") then Response.write("Você precisa escrever uma palavra para fazer uma busca.")
aqui se a pessoa quiser apertar o botão buscar sem escrever nenhuma palavra, aparecerá uma mensagem dizendo que precisa escrever algo para ser feita uma busca...ElseIf (objRS.EOF = true) then response.write "Sua busca por <b>"&Busca&"</b> não retornou nenhum resultado, por favor tente ser menos específico." Else
Aqui se a pessoa escreveu uma palavra com mais de tres letras... e mesmo assim não achou nenhum nome no nosso banco de dados, será mostrado uma mensagem com a palavra que foi buscada, dizendo que nenhum nome referente a busca foi achado...
do While not objRS.EOF
aqui fechamos todas as hipóiteses possíveis de erros... na hora da busca...
<%=objRS(TiraAspas("nome"))%><br>
e por fim, aqui mostramos quais os nomes que foram achados na busca...
<%
objRS.MoveNext
Loop
End IF
%>
como pode ter mais de um nome achado, fazemos um loop, para aparecer um nome abaixo do outro...
pois bem povo, acho que era isto que poderiamos aprender de como fazer uma busca simples em nosso banco de dados.... lembrando que este tuto é apenas uma base para que possamos seguir...
espero ter ajudado um pouco a galera...![]()
![]()
![]()
![]()
Posted 31/01/2005, 08:37
Posted 31/01/2005, 10:28
Posted 31/01/2005, 11:26
Posted 02/02/2005, 18:30
Posted 02/02/2005, 23:12
Seria colocar uma condição na sua instrução. Neste caso usado a cláusula WHERE (onde).cara me explica uma coisa
como que fica a consulta sql se eu nao quiser mostrar determinados campos, imagine que existe um campo na tabela chamado "disp" quando o disp receber "S" pode aparecer e quando o disp receber "N" nao pode aparecer...
alguem sabe
Grato
SELECT campo1, campo2, campo5, campo8 FROM sua_tabela WHERE disp = "s"
Posted 02/05/2005, 00:16
Posted 01/06/2005, 21:17
<body> <% Busca = Trim(Request.form("buscando")) %> <% set DB = createobject("adodb.connection") constr = "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.Mappath("cad.mdb") DB.open constr Set objRS = Server.CreateObject("ADODB.Recordset") %> <% function TiraAspas(str) str = replace(str,"'","""") TiraAspas = str End function %> <% Busca=TiraAspas(Busca) strSql = "SELECT * FROM tabela WHERE nome LIKE '%"&Busca&"%'" objRS.Open strSQL,DB,1,1 %> RESULTADO DA BUSCA:<br><br> <% if (len(busca)<=2) then Response.write("Digite uma palavra com o mínimo de 3 letras para fazer a busca.") ElseIf (Busca = "") then Response.write("Você precisa escrever uma palavra para fazer uma busca.") ElseIf (objRS.EOF = true) then response.write "Sua busca por <b>"&Busca&"</b> não retornou nenhum resultado, por favor tente ser menos específico." Else do While not objRS.EOF %> <%=objRS(TiraAspas("nome"))%><br> <% objRS.MoveNext Loop End IF %>
Posted 02/06/2005, 11:54
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)