Ir para conteúdo
Fórum Script Brasil
  • 0

"sqlstmt = "SELECT * FROM Carros WHERE"


Guest fabiomotamx

Pergunta

Guest fabiomotamx

Caros amigos sou novo em ASP,

gostaria de fazer com que este script de busca me possibilita-se fazer a pesquisa por diferentes formas: exemplo: Pela Marca ou Carro e não apenas só pela Placa.

o codigo apenas me deixa pesquisar por Placa e não por Marca, Carro, etc. alguém me poderia ajudar para por ele a funcionar direito?????

mando abaixo o codigo para alguém de boa fé poder analizar e me ajudarem se puderem.

Obrigado pessoal.

peguei um codigo na net de busca que esta assim:

busca.asp

<%

vPlaca = request.form("Placa")

DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "

DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")

sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%'"

Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open sqlstmt, DSNtemp, 3, 3

totalrecs = rs.recordcount

x = 0

for x = 1 to totalrecs

if rs.eof then

exit for

else

id = rs("ID")

carro = rs("Carro")

placa = rs("Placa")

marca = rs("Marca")

dono = rs("Dono")

tempo = rs("Tempo")

%>

<b>Marca:</b> <%=marca%>

<br>

<b>Carro:</b> <%=carro%>

<br>

<b>Dono do Carro:</b> <%=dono%>

<br>

<b>Placa:</b> <%=placa%>

<br>

<b>Consero em:</b> <%=tempo%>

<p>

<% rs.MoveNext %>

<% end if

next

%>

____________

Busca.html

<form action="busca.asp" method="post">

Digite a placa do seu carro:

<br>

<input type="text" name="Placa" size="7" maxlength="7">

<br>

<br>

<input type="submit" value="Buscar">

</form>

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Então, olha só:

sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%'"
"WHERE Placa" significa que ele vai procurar no campo Plca do seu Banco de dados na tabela Carros, ok? para consultar tb em outra tabelas você pode usar o OR ou ainda o AND, dependendo do caso... portanto tente assim:
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR nome_campo_marca like '%" & nomedavariavel_marca & "%' OR nome_campo_carro like '%" & nome_variavel_carro & "%'"

Era isso que você precisava?

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Guest fabiomotamx

Antes de mais Rafael, muito obrigado pela sua boa disposição em me responder....

fiz exactamente o que voce me passou. --> sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"

So que há um problema., se eu tentar pesquisar some pela Marca, Caro ou mesmo pela Placa que é o predefinido ele vai buscar todos os dados em geral do BD... por exemplo: eu tenho no meu banco as seguintes tabelas:

Placa | Marca | Carro | Dono | Tempo | ID |

abc audi a3 fabio 7dias 1

def porche 911 joao 30dias 2

Exemplo: se eu pesquisar pela Placa abc.....ele vai me dar os dados completos da ID numero 1.

dessa forma que voce me passou.....aceita fazer a pesquisa com qualquer um dos dados.......mas me apresenta os dados todos da tabela Carros em geral. e não é isso que eu quero.

espero não ser inconveniente. é que eu preciso de aprender essa p**** de beleza do ASP.

Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Não tenho certeza se entendi exatamente o que você precisa...

Tipo, você quer que eu pesquisar por carro Audi por exemplo apareça somente a coluna do bd que contem audi?

ou seja, somente a coluna marca? é isso?

Se for outra coisa me explica um pouquinho melhor que eu te ajudo por aqui!

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0
Guest fabiomotamx

Vou tentar ser o mas simples nas palavras. :)

Rafael, Por defeito, esse sistema de busca não te permite pesquisar pela marca do carro e pelo nome do dono ou pelo modelo.....apenas te permite pesquisar pela Placa.

Portanto, o que eu gostaria é que ele pesquisasse não só pela placa mas também pelo Modelo e Marca.

espero ter feito intender,

desde já agradeço-te pela ajuda Rafael.

Cordialmente,

Fábio Mota

Link para o comentário
Compartilhar em outros sites

  • 0

Oi Fábio, então, isso que você postou eu já tinha entendido ;-) , o que eu ainda não entendi é o que está acontecendo de errado com aquela query que eu te passei, pois ela deveria resolver este problema, mas vamos lá:

So que há um problema., se eu tentar pesquisar some pela Marca, Caro ou mesmo pela Placa que é o predefinido ele vai buscar todos os dados em geral do BD... por exemplo: eu tenho no meu banco as seguintes tabelas:

Placa | Marca | Carro | Dono | Tempo | ID |

abc audi a3 fabio 7dias 1

def porche 911 joao 30dias 2

Exemplo: se eu pesquisar pela Placa abc.....ele vai me dar os dados completos da ID numero 1.

dessa forma que voce me passou.....aceita fazer a pesquisa com qualquer um dos dados.......mas me apresenta os dados todos da tabela Carros em geral. e não é isso que eu quero.

Pelo que eu entendi e me explique esta parte caso eu tenha entendido errado, você quer que ao pesquisar por exemplo por placa, apareça somente as "placas" em sua pesquisa, ou seja:

digito lá abc, daí ao invés de aparecer "abc audi a3 fabio 7dias 1" você quer que imprima em tela apenas "abc" é isso?

Bom... se for isso um jeito interessante seria criar vários inputs de pesquisa, por exemplo:

Pesquise por placa:

Pesquise por marca:

então criei aqui um exemplinho básico pra você ver:

Busca.html

<form action="busca.asp" method="post">
você quer pesquisar como:
<input type="radio" name="cmbBusca" value="1" checked="checked" />por placa
<input type="radio" name="cmbBusca" value="2" />por marca
<input type="radio" name="cmbBusca" value="3" />por carro
<br>
<input type="text" name="Placa" size="7" maxlength="7">
<br>
<br>
<input type="submit" value="Buscar">
</form>
busca.asp
<%
vPlaca = request.form("Placa")
busca = requst.form("cmbBusca")

if busca = 1 then
call porplaca()
elseif busca = 2 then
call pormarca()
elseif busca = 3 then
call porcarro()
end if

sub porplaca()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Placa:</b> <%=placa%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next
%>

end sub


sub pormarca()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Marca:</b> <%=marca%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next
%>

end sub

sub porcarro()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Carro:</b> <%=carro%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next
%>

end sub

testa aí e ve se é isso que você precisa... se for existem outros jeitos de fazer tb, mas esse aí foi o que me ocorreu agora...

retorne ao tópico se deu certo para que outros possam aproveitar;

[]'s Rafael Spilki

Link para o comentário
Compartilhar em outros sites

  • 0

bom eu sou novo aki e estou precisando da seguinte ajudar:

quero faser essa pasquisa usando 3 campo da tabela

ex: Carro, Dono e Placa

meu codigo é

busca.asp

<%
vCarro = request.form("Carro")

DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Carro like '%" & vCarro & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0 
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>
<b>Marca:</b> <%=marca%>
<br>
<b>Carro:</b> <%=carro%>
<br>
<b>Dono do Carro:</b> <%=dono%>
<br>
<b>Placa:</b> <%=placa%>
<br>
<b>Consero em:</b> <%=tempo%>
<p>
<% rs.MoveNext %>
<% end if
next
%>
O codigo Pesquiza é index.html
<html>
<head>
<title>Procure por seu carro pela placa</title>
</head>
<body>
<p align="center">
<form action="busca.asp" method="post">
Digite a placa do seu carro:
<br>
<input type="text" name="Carro" size="7" maxlength="7">
  <br>
<br>
<input type="submit" value="Buscar">
</form>
</p>
</body>

</html>

pois eu tentei esse codigo logo acima e deu erro

# Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A03F8)

'Sub' esperado

/asp/veterano/busca.asp, line 80, column 4

end if

---^

Veterano conto con a sua ajuda

MSN leandro010188@hotmail.com agradeço desde jáh xd:

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

  • 0
Oi Fábio, então, isso que você postou eu já tinha entendido ;-) , o que eu ainda não entendi é o que está acontecendo de errado com aquela query que eu te passei, pois ela deveria resolver este problema, mas vamos lá:
So que há um problema., se eu tentar pesquisar some pela Marca, Caro ou mesmo pela Placa que é o predefinido ele vai buscar todos os dados em geral do BD... por exemplo: eu tenho no meu banco as seguintes tabelas:

Placa | Marca | Carro | Dono | Tempo | ID |

abc audi a3 fabio 7dias 1

def porche 911 joao 30dias 2

Exemplo: se eu pesquisar pela Placa abc.....ele vai me dar os dados completos da ID numero 1.

dessa forma que voce me passou.....aceita fazer a pesquisa com qualquer um dos dados.......mas me apresenta os dados todos da tabela Carros em geral. e não é isso que eu quero.

Pelo que eu entendi e me explique esta parte caso eu tenha entendido errado, você quer que ao pesquisar por exemplo por placa, apareça somente as "placas" em sua pesquisa, ou seja:

digito lá abc, daí ao invés de aparecer "abc audi a3 fabio 7dias 1" você quer que imprima em tela apenas "abc" é isso?

Bom... se for isso um jeito interessante seria criar vários inputs de pesquisa, por exemplo:

Pesquise por placa:

Pesquise por marca:

então criei aqui um exemplinho básico pra você ver:

Busca.html

<form action="busca.asp" method="post">
você quer pesquisar como:
<input type="radio" name="cmbBusca" value="1" checked="checked" />por placa
<input type="radio" name="cmbBusca" value="2" />por marca
<input type="radio" name="cmbBusca" value="3" />por carro
<br>
<input type="text" name="Placa" size="7" maxlength="7">
<br>
<br>
<input type="submit" value="Buscar">
</form>
busca.asp
<%
vPlaca = request.form("Placa")
busca = requst.form("cmbBusca")

if busca = 1 then
call porplaca()
elseif busca = 2 then
call pormarca()
elseif busca = 3 then
call porcarro()
end if

sub porplaca()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Placa:</b> <%=placa%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next
%>

end sub


sub pormarca()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Marca:</b> <%=marca%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next
%>

end sub

sub porcarro()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Carro:</b> <%=carro%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next
%>

end sub

testa aí e ve se é isso que você precisa... se for existem outros jeitos de fazer tb, mas esse aí foi o que me ocorreu agora...

retorne ao tópico se deu certo para que outros possam aproveitar;

[]'s Rafael Spilki

mano deu erro mais e isso mesmo q nóis queremos min ajude leandro010188@hotmail.com

# Tipo de erro:

Erro de compilação do Microsoft VBScript (0x800A03F8)

'Sub' esperado

/asp/veterano/busca.asp, line 80, column 4

end if

---^

Editado por leandro010188
Link para o comentário
Compartilhar em outros sites

  • 0

Cara se a sua conexão estiver OK, é só rodar ...

busca.html

<form method="post" action="busca.asp">
você quer pesquisar como:
<input type="radio" name="cmbBusca" value="1" checked="checked" />por placa
<input type="radio" name="cmbBusca" value="2" />por marca
<input type="radio" name="cmbBusca" value="3" />por carro
<br>
<input type="text" name="Placa" size="7" maxlength="7">
<br>
<br>
<input type="submit" value="Buscar">
</form>
busca.asp
<%
vPlaca = request.form("Placa")
busca = request.form("cmbBusca")

if busca = 1 then
call porplaca()
elseif busca = 2 then
call pormarca()
elseif busca = 3 then
call porcarro()
end if

sub porplaca()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Placa:</b> <%=placa%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next


end sub


sub pormarca()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Marca:</b> <%=marca%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next

end sub

sub porcarro()


DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("db.mdb")
sqlstmt = "SELECT * FROM Carros WHERE Placa like '%" & vPlaca & "%' OR Carro like '%" & Marca & "%' OR Dono like '%" & ID & "%'"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sqlstmt, DSNtemp, 3, 3
totalrecs = rs.recordcount

x = 0
for x = 1 to totalrecs
if rs.eof then
exit for
else

id = rs("ID")
carro = rs("Carro")
placa = rs("Placa")
marca = rs("Marca")
dono = rs("Dono")
tempo = rs("Tempo")
%>

<br>
<b>Carro:</b> <%=carro%>
<br>

<p>
<% rs.MoveNext %>
<% end if
next

end sub
%>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...