Jump to content


Photo

Dúvida sobre Fazer Uma Busca No Db


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

#1 angeloweb

angeloweb

    Novato no fórum

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

Posted 12/09/2004, 21:51

iporto
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 (y)

#2 Luis Otávio

Luis Otávio

    Super Veterano

  • Usuários
  • 3113 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre
  • Interesses:- Desenvolvimento de aplicações Web com linguagem server-side PHP.

    - Desenvolvimento de aplicações Web com linguagem cliente-side JavaScript, conhecedor e utilizador da biblioteca jQUERY e todas suas características.

    - Otimização de Desempenho aplicados a performance de banco de dados Mysql.

    - Otimização de Desempenho para servidores Web utilizando-se como Webserver NGINX em conjunto com Varnish.

    - Sólidos conhecimentos no CMS WordPress para novas implementações, manutenção, criação e otimização de Plugins.

    - Práticas de atendimento, relacionamento e suporte ao cliente. Trabalhando voltado ao público desde o lançamento da empresa iPORTO.COM, criando laços e vínculos com os mais de Mil clientes da empresa e os braços do grupo.

Posted 12/09/2004, 21:56

se vc diz buscar em duas tabelas ao mesmo tempo seria assim

<%
Busca=TiraAspas(Busca)

strSql = "SELECT * FROM tabela1, tabela2 WHERE nome LIKE '%"&Busca&"%'"
objRS.Open strSQL,DB,1,1
%>


seria isto?

se num for pergunte de novo.. hehe
* Otávio Nogueira
* Administração e Configuração de Servidores;
* Combinação Perfeita: NGINX + PHP + VARNISH + HAPROXY
* otavio*iporto.com ~ Tel: +55 51 3366 0177 | +55 51 4063 7343 |
* @iporto

#3 angeloweb

angeloweb

    Novato no fórum

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

Posted 13/09/2004, 14:38

Acredito que é isso mesmo.

Por exemplo, tenho uma tabela de fornecedores, com os campos fornecedor, cnpj, inscricao, endereco, telefone.
E uma tabela produtos, com o campos produto, modelo, descricao, valor, fornecedor.
Gostaria que quando eu buscasse o produto ele me trouxesse os campos da tabela produtos e junto com fornecedor o endereco e telefone da tabela fornecedores....

Não sei s fui o mais claro possível, qualquer dúvida estarei pronto para esclarecer.

Obrigado

======================================

<!--#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>
&nbsp;</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
%>

Esta é a minha pagina de resultados

Edição feita por: LeoB, 15/09/2004, 13:00.


#4 skarloff

skarloff

    Doutor

  • Usuários
  • 813 posts
  • Sexo:Masculino
  • Localidade:RO

Posted 08/01/2005, 09:02

muito bom esse tuto... veio em boa hora pra min.

so que se por acaso quize-se buscar alem do nome, por outros campos.
Skarloff
-----------------------------------------------
Sem ter o que fazer?: Videos toscos para quem não tem nada para fazer...

#5 Luis Otávio

Luis Otávio

    Super Veterano

  • Usuários
  • 3113 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre
  • Interesses:- Desenvolvimento de aplicações Web com linguagem server-side PHP.

    - Desenvolvimento de aplicações Web com linguagem cliente-side JavaScript, conhecedor e utilizador da biblioteca jQUERY e todas suas características.

    - Otimização de Desempenho aplicados a performance de banco de dados Mysql.

    - Otimização de Desempenho para servidores Web utilizando-se como Webserver NGINX em conjunto com Varnish.

    - Sólidos conhecimentos no CMS WordPress para novas implementações, manutenção, criação e otimização de Plugins.

    - Práticas de atendimento, relacionamento e suporte ao cliente. Trabalhando voltado ao público desde o lançamento da empresa iPORTO.COM, criando laços e vínculos com os mais de Mil clientes da empresa e os braços do grupo.

Posted 08/01/2005, 15:16

acima tem um exemplo de como ficaria... mas a sql ficaria assim

strSql = "SELECT * FROM cadastro WHERE nome LIKE '%"&Busca&"%'" or outro_campo LIKE '%"&outro_campo&"%'" 
objRS.Open strSQL,DB,1,1

;) (y)
* Otávio Nogueira
* Administração e Configuração de Servidores;
* Combinação Perfeita: NGINX + PHP + VARNISH + HAPROXY
* otavio*iporto.com ~ Tel: +55 51 3366 0177 | +55 51 4063 7343 |
* @iporto

#6 skarloff

skarloff

    Doutor

  • Usuários
  • 813 posts
  • Sexo:Masculino
  • Localidade:RO

Posted 08/01/2005, 17:00

:D GRATO!!!!
Skarloff
-----------------------------------------------
Sem ter o que fazer?: Videos toscos para quem não tem nada para fazer...

#7 Agente Linhares

Agente Linhares

    fuis...abraços!

  • Ex-Admins
  • 3138 posts
  • Sexo:Não informado
  • Localidade:Biritiba Mirim-SP

Posted 09/01/2005, 15:02

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... ;) :lol: :D :rolleyes: :P

hehe. mas uam vez, madô bem tio. (y) :)
> Busca On-line - A Busca que faltava na Internet! - Cadastre-se!
---------------------------------------------------------------------------
> BRdesign.NET - Soluções em Websites e Sistemas E-Commerce.
---------------------------------------------------------------------------
> BR-ecommerce - Sua loja virtual na internet! - Apenas R$99,90 mensais (hospedagem inclusa)!

#8 ricardofressa

ricardofressa

    Turista

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

Posted 31/01/2005, 08:37

Ae, eu fiz os dois arquivos busca.asp e resultado.asp
coloquei os codigos identicos ao do forum, mas na pagina busca.asp quando digito alguma coisa e aperto BUSCAR, aparece a pagina Resultado.asp com o seguinte erro

Method Not Allowed
The requested method POST is not allowed for the URL /tutoasp/busca/resultado.asp.


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

Apache/1.3.31 Server at www.dana.com Port 80

por que, esta aparecendo isso ?
ah, também criei o banco.mdb na mesma pasta com os a tabela cadastro e com os campos nome, cpf, email, endereco

Valeu

#9 pchardnet

pchardnet

    ×-× 3D ×-×

  • Usuários
  • 1068 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte-MG

Posted 31/01/2005, 10:28

Apache não roda ASP

Use IIS
www.wvirtu.net - Hospedagem Sites - PHP + MySql + Fantástico - Joomla! pré-instalado

www.joomlaminas.org - Grupo de Usuários Joomla! de Minas Gerais

#10 ricardofressa

ricardofressa

    Turista

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

Posted 31/01/2005, 11:26

Certo, coloquei no IIS e está funcionando normal... valeu

mas tipo, a busca está sendo feita no banco de dados ACCESS, como que seria o codigo pra eu fazer um busca dentro do banco de dados Mysql ?

#11 DanDan

DanDan

    12 Horas

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

Posted 02/02/2005, 18:30

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
wiiiiiiiiiiiiiiiiiiiiiiiiii

Imagine todo o povo jogando Wii.... vc irá dizer que eu sou sonhador, mas não sou o único. Espero que você um dia se junte a nós. (Fanboy Nintendista)

#12 pchardnet

pchardnet

    ×-× 3D ×-×

  • Usuários
  • 1068 posts
  • Sexo:Não informado
  • Localidade:Belo Horizonte-MG

Posted 02/02/2005, 23:12

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

Seria colocar uma condição na sua instrução. Neste caso usado a cláusula WHERE (onde).

Ficando assim
SELECT campo1, campo2, campo5, campo8 FROM sua_tabela WHERE disp = "s"

Selecione o campo1, campo2, campo5, campo8 da sua_tabela onde disp seja ihual a s.

(y)
www.wvirtu.net - Hospedagem Sites - PHP + MySql + Fantástico - Joomla! pré-instalado

www.joomlaminas.org - Grupo de Usuários Joomla! de Minas Gerais

#13 brasileiro

brasileiro

    Novato no fórum

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

Posted 02/05/2005, 00:16

Oi Amigo ... em primeiro lugar queria lhe agradecer por disponibilizar esse script de busca que procuro há algum tempo ! Estava mesmo procurando um em português com explicação ... obrigado.

Em segundo ... preciso de sua ajuda ...

Funcionou corretamente a busca em meu site... Liguei ao banco de dados acess, tudo certo ... Agora ... tem como eu linkar o resultado da busca ?

Ex: Meu site é uma loja ... ao visitante realizar a busca os links que resultaram gostaria de adicionar um link para aquele produto. Entendeu ?

Poderia me ajudar ?

Agradeço a atenção concedida.

Luiz Henrique

#14 Scream_Right

Scream_Right

    Turista

  • Usuários
  • 40 posts
  • Sexo:Não informado
  • Localidade:Campo Novo do Parecis
  • Interesses:Dreamweaver<br />Fireworks<br />Html<br />Asp, <br />Photoshop

Posted 01/06/2005, 21:17

E aew blz? Estou fazendo uma geral pelos teus tutoriais hein? hehehe
Bom... parece q novamente nao deu certo pra mim...

A parte onde caso eu digite menos de 3 letras aparece a msg, ou deixe em branco e apareça a msg, nao está funcionando, simplesmente nao aparece mesmo, continua na página buscas...
Tb, quando eu coloco um style dentro do body ele nao busca nada de jeito algum...

Abaixo o meu código sem o style.

<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
%>

Bom... nao sei se tem algo errado, mas já virei de ponta cabeça.... :huh:
Se puderem me ajudar, muito obrigado!

#15 Luis Otávio

Luis Otávio

    Super Veterano

  • Usuários
  • 3113 posts
  • Sexo:Masculino
  • Localidade:Porto Alegre
  • Interesses:- Desenvolvimento de aplicações Web com linguagem server-side PHP.

    - Desenvolvimento de aplicações Web com linguagem cliente-side JavaScript, conhecedor e utilizador da biblioteca jQUERY e todas suas características.

    - Otimização de Desempenho aplicados a performance de banco de dados Mysql.

    - Otimização de Desempenho para servidores Web utilizando-se como Webserver NGINX em conjunto com Varnish.

    - Sólidos conhecimentos no CMS WordPress para novas implementações, manutenção, criação e otimização de Plugins.

    - Práticas de atendimento, relacionamento e suporte ao cliente. Trabalhando voltado ao público desde o lançamento da empresa iPORTO.COM, criando laços e vínculos com os mais de Mil clientes da empresa e os braços do grupo.

Posted 02/06/2005, 11:54

e o seu formulário? ta como?
* Otávio Nogueira
* Administração e Configuração de Servidores;
* Combinação Perfeita: NGINX + PHP + VARNISH + HAPROXY
* otavio*iporto.com ~ Tel: +55 51 3366 0177 | +55 51 4063 7343 |
* @iporto




1 user(s) are reading this topic

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

IPB Skin By Virteq