Ir para conteúdo

POWERED BY:

Arquivado

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

theverme

[Resolvido] sistema de busca

Recommended Posts

Boa noite galera to tentando fazer um sistama de busca com os campos

 

tipo - texto

marca - numero

modelo - texto

ano - texto X anoate - texto

valor - texto X valor - valorate

 

no metodo get onde sera recuperada as QueryString, porem não estou conseguindo monta minha sql gostaria que vcs me dessem um ajuda ai como monta essa sql desde ja agradeço a ajuda.

 

agredeço tbm sugestões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

como tentou fazer?

 

está usando get mesmo ou post?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou usando o metodo get pra recuperar as querystring

mais to tendo difuldade em monta a minha slq.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual dificuldade exatamente está enfrentando?

Compartilhar este post


Link para o post
Compartilhar em outros sites

existem exemplos no fórum e artigos, sobre como fazer um sistema de busca, pode te ajudar, dê uma pesquisada...

 

existem varios exemplos no fórum e artigos sobre como criar um sistema de bucsa, pode te ajudar e abixo um simples exemplo

 

formulário

<%  	'aplicacaun para fazer uma pesquisa,busca nos registro da BD,onde atraves
  		'de um form com input type text onde o user entra com pesquisa k será
		'submetida para o pesquisa_action.asp,fazendo a SQL, nesta aplicacaun darei
		'um request da varmsgeof ,k irá retornar no caso de erro no action
		'fazendo um if e mostrando um window.open
		
		Option Explicit
		'declaro as var
		dim varmsgeof
		'recupero a var
		varmsgeof=request.querystring("msgeof")
		%>
		<script language="javascript">
function novajan(){
window.open ("erro_treina.asp","Proibido","width=180,height=200,scrollbar=no,status=yes,resize=no")
}
</script>
<%
		if varmsgeof = 1 then 'porque naun achou nada na SQL select
			response.write("<script>novajan();</script>")
		end if
		
		'no caso de fazer uma pesquisa mais avançada com 2 tab.
		'eu aki criaria a conexao,crio o rs, crio am SQL
		'sql="select * from categoria order by categoria"
		'rs.open sql,conexao,1,3
		'crio o form com action para pesquisa_action.asp
		'crio o <select name="categoria" size="1">
		'{% while not rs.eof %}
		'<option value="{%=rs("cod_cat")%}">
		'{%rs("categoria")%}
		'</option>
		'{%rs.movenext
		'wend%}
		'</select>
		'{%fecha o rs
		'set rs=nothing
		'fecha a conexao
		'call fechaconexao
		'crio o input type text da pesquisa
		'<input type="text" name="categoria">
		
		%>

<html>
<head>
<title>Pesquisa</title>

</head>

<body bgcolor="#999999" text="#000000" onLoad="MM_timelineGoto('Timeline1','1')">
<div id="Layer1" style="position:absolute; left:-152px; top:17px; width:141px; height:144px; z-index:1"> 
<table width="75%" border="0"> <tr> <td><img src="file:///A|/imgs/menun.gif" width="175" height="185" usemap="#Map" border="0"></td></tr> 
</table></div><p> </p><p> </p><p> </p><table width="75%" border="0"> <tr> <td> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Pesquisa</font></b></div></td></tr> 
<tr> <td height="2"> </td></tr> <tr> <td> <form name="form1" method="post" action="pesquisa_action_treina.asp"> 
<b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Entre 
com a Pesquisa:</font></b> <input type="text" name="pesquisa" size="35" maxlength="15"> 
        <input type="image" border="0" name="imageField" src="imgs/ok.gif" width="18" height="15" alt="pesquisar"> 
</form></td></tr> </table>

</map> 
</body>
</html>

action

<%  	'pesquisa_action aplicacaun p/ fazer uma consulta no BD por SQL
  		'onde se recupera a var pesquisa do form para fazer o select LIKE
		'caso rs.eof then redireciono para o Form com um msgeof=1
		'lá no pesquisa_form.asp do um request.querystring e apresento
		'um window.open k naun foi encontrado nada
		
		Option Explicit
		'declaro as var
		dim conexao, conDBQ, constring, rs, SQL, varpesquisa
		'recupero a pesquisa
		varpesquisa=trim(request.form("pesquisa"))
		'crio a conexao
		%>
		<!--#include file="conn/conexao1.asp"-->
		<%'abro a conexao
		call abreconexao
		'crio o rs
		set rs=server.createobject("ADODB.Recordset")
		'crio a SQL
		SQL="SELECT * FROM login WHERE login LIKE '%"&VARPESQUISA&"%' ORDER BY login"
		rs.open SQL,conexao,1,3
		if rs.eof then
			response.redirect("pesquisa_form_treina.asp?msgeof=1")
		else%>

		



<html>
<head>
<title>Dados Encontrados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#999999" text="#000000">
<table width="75%" border="1"> <tr> <td colspan="4"> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Pesquisa 
de <%= Ucase(varpesquisa)%></font></b></div></td></tr> <tr> <td colspan="4"> </td></tr> 
<tr> <td width="18%"> <div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Código</font></b></font></div></td><td width="26%"> 
<div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Login</font></b></font></div></td><td width="22%"> 
<div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Senha</font></b></font></div></td><td width="34%"> 
<div align="center"><font color="#666666"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Email</font></b></font></div></td></tr> 
<% while not rs.eof %> <tr bgcolor="#CCCCCC"> <td width="18%"> <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("codigo")%></font></b></div></td><td width="26%"> 
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("login")%></font></b></div></td><td width="22%"> 
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("senha")%></font></b></div></td><td width="34%"> 
<div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"><%=rs("email")%></font></b></div></td></tr> 
<%rs.movenext
  wend%> <tr> <td colspan="4"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Foram 
encontrados <%=rs.recordcount%> registros para sua pesquisa.</font></b></td></tr> 
<tr> <td colspan="4"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">Página 
<%=rs.pagecount%> de <%=rs.pagecount%> </font></b></td></tr> <% 'fecha o rs
  set rs=nothing
  'fecha a conexao
  call fechaconexao
  end if %> </table>
<table width="75%" border="0" height="65">
  <tr> 
    <td> <div align="center"><font color="#999999"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666666">Resolução 
        mínima 800x600.</font></b></font></div></td>
  </tr>
  <tr> 
    <td> <div align="center"><font color="#999999"><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif"> 
        <font color="#666666">© Copyright 2000-2002 - Todos os direitos reservados</font></font></b></font></div></td>
  </tr>
</table>
<p> </p>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mudei o campo ano para numerico

mudei tambem metodeo para post.

 

galera minha sql ta sim

 

sql = "select * from estoque where tipo = 1 and id_marca="& marca &" and modelo like '%"& modelo &"%' and ano between "& ano &" and "& anoate &" "

 

até ai ta funcionado bem, porem quando coloco um between para compra so valores da erro;

 

 

caso vcs queram ver o site ja ta no ar porem so em htm, assim que termina vo passa para asp.

 

site http://www.naturaville.com.br/carros/index.htm

 

é um site simples;

 

mais gostaria de adaptar esse sistema de busca simples;

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o que esta sendo passado

 

response.write(SQL)
response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na sua string SQL para ver o que esta sendo passado

 

response.write(SQL)
response.end()

 

 

não entendi como fazer isso

 

 

opa ja entendi ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

abaixo do

sql = "select * from estoque where tipo = 1 and id_marca="& marca &" and modelo like '%"& modelo &"%' and ano between "& ano &" and "& anoate &" "
você coloca o

response.write(SQL)
response.end()

para ver o que esta sendo passado na consulta

 

olha um exemplo simples:

<!--#include file="conn/conexao1.asp"--> 
<% call abreconexao
var1=33
   var2=40			
  'crio o rs
  set rs=Server.CreateObject("ADODB.Recordset")
  'crio o SQL
  SQL="SELECT * FROM login Where codigo between "&var1&" AND "&var2&""
  rs.open SQL,conexao,1,3
   %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok estamos , aguardando

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora to tentando passa os valores

 

 

sql = "select * from estoque where tipo = 1 and id_marca="& marca &" and modelo like '%"& modelo &"%' and valor between "& valor &" and "& valorate &" "

 

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

Erro

 

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Driver ODBC para Microsoft Access] Erro de sintaxe (vírgula) na expressão de consulta 'tipo = 1 and id_marca=16 and modelo like '%palio%' and valor between 5.000,00 and 20.000,00'.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique a ortografia. pode ser um nome de coluna Invalido 'sua_coluna'. A coluna a qual você se refere na Base de Dados não foi encontrada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

eu to achando que são as virgulas dos meus valores ex. 25.000,00

 

fiz dessa forma

 

5000 X 50000

 

funciono blza mais vo ter que usar formatnumber

para exibir os valores 5.000,00 ou 50.000,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

fiz uma modicação no banco de dados o meu campo valor - mudei ele para numero

no lugar de fica assim 5.000,00 vai fica assim 5000 ai usei um formatnumber na hora de exibir os registros.

 

assim minha sql fico assim :

if request.form("tipo")="1" then
sql = "select * from estoque where tipo = 1 and id_marca="& marca &" and modelo like '%"& modelo &"%' and valor between "& valor &" and "& valorate &" and ano between "&ano&" and "&anoate&" "
set rsBusca = conexaodb.execute(sql)

elseif request.Form("tipo")="2" then 
sql = "select * from estoque where tipo = 2 and id_marca="& marca &" and modelo like '%"& modelo &"%' and valor between "& valor &" and "& valorate &" and ano between "&ano&" and "&anoate&" "
set rsBusca = conexaodb.execute(sql)
end if

porem alguns campos vou ter que usar uma validação como campo obrigatorio.

como o campo tipo, marca, modelo por serem campos fundamentais na busca, tbm vo ter que ter cuidado com sql injection.

 

 

É um sistema de busca simples mais acho que ja valendo pois sou novato em asp

agora to pensando na paginação mais isso é mais pra frente

vo pedir pra deixar esse topico aberto caso alguem tenha mais ideias de como deixar esse sitemas mais completo

desde ja agradeço a sua atenção e dos amigos do forum .

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal, isso, mesmo

agora referente a paginação , existem vários ótimos exemplos no lab. de script

dá uma olhada aqui pode te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

Dei eu estuda em uma paginação do link que você me passo e ja adaptei ele no sistema de busca.

 

agora não sei se da para fazer o seguinte.

 

na hora de cadastra os valor do veiculo.

 

gostaria de saber se é possivel usar o replace para remover pontos (.) e virgulas(,)

 

no caso quado eu for cadastra o valor seria assim 28.500,00

 

e ele enviase ao banco de dados assim 25500 tem com fazer isso ??

 

desde ja agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz assim:

 

<% valor="25.998,09"
valor1=replace(valor,".","")
valor1=replace(valor1,",","")
response.write(valor1)%>

existem uma função no lab. de script, para tirar caracteres invalidos e ou maliciosos, você pode usá-la

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

valeu pela ajuda fiz dessa forma para usar com formatnumber.

 

<% 
valor="255.998,00"
valor1=replace(valor,".","")
valor1=replace(valor1,",","")
valor1=replace(valor1,"00","")
response.write(valor1)
%>
<br>
<%
response.Write(formatnumber(valor1))
%>

cara valeu msm vcs estão adiantondo mo lado

 

valeu msm pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem problemas, ASPmano

 

qualquer coisa posta ae...

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.