Ir para conteúdo

Arquivado

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

estranho.com

[Resolvido] Página de pesquisa

Recommended Posts

Olá pessoal... estou com a seguinte duvida... fiz uma página de pesquisa para um site pessoal onde visualiso meu intinerario... eu até consegui consultar o local mais eu gostaria que não diferenciase maiusculas e minusculas e pesquisase nos campos motivo e data e na busca ele considere uma palavra no meio do motivo por exemplo o nome do cliente...

já pesquisei no forum, tentei com varios IFs e tentei na sql mais nao consegui.... se alguem puder me ajudar....

 

 

desde já agradeço...

 

 

 

 

pesquisa =Request.querystring("pesquisa")

sql = "SELECT * FROM listas"
Set rsloop = Server.CreateObject("ADODB.Recordset")
rsloop.Open sql, conn, 3, 3
%>
<CENTER>

<TABLE BORDER="1" WIDTH="100%" >

<TR>
	<TD><B><CENTER>LOCAL</CENTER></B></TD>
	<TD><B><CENTER>MOTIVO</CENTER></B></TD>
	<TD><B><CENTER>DATA</CENTER></B></TD>
	<TD><B><CENTER>HORA</CENTER></B></TD>
	<TD><B><CENTER>OBS</CENTER></B></TD>
</TR>
<% 
do while not rsloop.EOF %>

<%if rsloop("Local") = pesquisa then%>
<TR>
	<TD><%= rsloop("Local") %></TD>
	<TD><%= rsloop("Motivo") %></TD>
	<TD><%= rsloop("Data") %></TD>
	<TD><%= rsloop("Horas") %></TD>
	<TD><%= rsloop("Obs") %></TD>
</TR>
<% Else %>  
<%End if%>


<% rsloop.Movenext
Loop ' fim loop
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

Brother pelo o q eu entendi da sua dúvida você está querendo q pegue os campos que estiver como maiúsculo ou minusculo no banco de dados é isso ?? Se for é só você usar o comando UPPER no banco de dados assim:

 

sql = "SELECT * FROM listas UPPER "
Set rsloop = Server.CreateObject("ADODB.Recordset")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

Brother pelo o q eu entendi da sua dúvida você está querendo q pegue os campos que estiver como maiúsculo ou minusculo no banco de dados é isso ?? Se for é só você usar o comando UPPER no banco de dados assim:

 

sql = "SELECT * FROM listas UPPER "
Set rsloop = Server.CreateObject("ADODB.Recordset")

 

é mais ou menos por ai... mais eu tentei aqui e não deu certo ...

 

sql = "SELECT * FROM listas UPPER"

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother fiz um teste aki com e sem o UPPER e deu o mesmo resultado, o meu está rodando certo. Tenho um Script igual o seu. Tenta usar igual eu uso, adpatei no seu código assim:

<%
pesquisa =Request.querystring("pesquisa")

sql = "SELECT * FROM listas"
Set rsloop = suaconexão.execute("sql")
%>
<CENTER>

<TABLE BORDER="1" WIDTH="100%" >

<TR>
	<TD><B><CENTER>LOCAL</CENTER></B></TD>
	<TD><B><CENTER>MOTIVO</CENTER></B></TD>
	<TD><B><CENTER>DATA</CENTER></B></TD>
	<TD><B><CENTER>HORA</CENTER></B></TD>
	<TD><B><CENTER>OBS</CENTER></B></TD>
</TR>
<% 
while not rsloop.EOF %>

<%if rsloop("Local") = pesquisa then%>
<TR>
	<TD><%=rsloop("Local") %></TD>
	<TD><%=rsloop("Motivo") %></TD>
	<TD><%=rsloop("Data") %></TD>
	<TD><%=rsloop("Horas") %></TD>
	<TD><%=rsloop("Obs") %></TD>
</TR>
<% Else %>  
<%End if%>


<% rsloop.Movenext
Wend ' fim loop
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso.

SELECT * FROM listas WHERE lcase(local) like '%" & lcase(pesquisa) & "%' "
E remove o if abaixo:

<%if rsloop("Local") = pesquisa then%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso.

SELECT * FROM listas WHERE lcase(local) like '%" & lcase(pesquisa) & "%' "
E remove o if abaixo:

<%if rsloop("Local") = pesquisa then%>

deu erro

 

 

erro '80004005'

/resultado.asp, line 211

 

 

<%
Dim rsloop2, pesquisa

pesquisa =Request.querystring("pesquisa")


sql = "SELECT * FROM listas WHERE lcase(local) like '%" & lcase(pesquisa) & "%' "
Set rsloop2 = Server.CreateObject("ADODB.Recordset")
rsloop2.Open sql, conn2, 3, 3
%>
		<center>
		  <table border="1" width="100%" >
			<tr>
			  <td><b>
				<center>
				  LOCAL
				</center>
			  </b></td>
			  <td><b>
				<center>
				  MOTIVO
				</center>
			  </b></td>
			  <td><b>
				<center>
				  DATA
				</center>
			  </b></td>
			  <td><b>
				<center>
				  HORA
				</center>
			  </b></td>
			  <td><b>
				<center>
				  OBS
				</center>
			  </b></td>
			</tr>
			<% 
do while not rsloop2.EOF 'loop de link de pastas................................. 
%>
			
			<tr>
			  <td><%= rsloop2("Local") %></td>
			  <td><%= rsloop2("Motivo") %></td>
			  <td><%= rsloop2("Data") %></td>
			  <td><%= rsloop2("Horas") %></td>
			  <td><%= rsloop2("Obs") %></td>
			</tr>
		   
			<% rsloop2.Movenext
Loop ' fim loop.............................................
%>
		  </table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que com o like nao precisa se preocupar com maiusculas e minusculas

Compartilhar este post


Link para o post
Compartilhar em outros sites

sql = "SELECT * FROM listas"
Set rsloop2 = Server.CreateObject("ADODB.Recordset")
rsloop2.Open sql, conn2, 3, 3

do while not rsloop2.EOF 'loop 
%>
			<%if rsloop2("Local") = pesquisa then%>
			<tr>
			  <td><%= rsloop2("Local") %></td>
			  <td><%= rsloop2("Motivo") %></td>
			  <td><%= rsloop2("Data") %></td>
			</tr>
			<% Else %>
 
			<%End if%>
			<% rsloop2.Movenext
Loop ' fim loop%>

Assim até funciona... mais tem um problema... abusca tem q estar igual ao q esta no banco tipo se eu pesquisar "cliente" e no banco estiver "cliente x" ele nao retorna o resultado e dessa forma ele só pesquisa no campo cliente e teria q ser em "motivo, data, cliente" se alguem puder me dar uma mãozinha.. não sou proficional da área mais isso me ajuda a pagar minha facu....

 

agradesço desde já... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prefiro fazer tudo no SQL, mas existe uma outra forma (com certeza pior) para fazer isso.

 

Ao invés de

if rsloop2("Local") = pesquisa then
Faça:

if (instr(lcase(rsloop2("Local")),lcase(pesquisa)) > 0) then

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prefiro fazer tudo no SQL, mas existe uma outra forma (com certeza pior) para fazer isso.

 

Ao invés de

if rsloop2("Local") = pesquisa then
Faça:

if (instr(lcase(rsloop2("Local")),lcase(pesquisa)) > 0) then

 

Como não consegui fazer no sql fiz assim e deu certo.. vlw.... tem com eu estender essa pesquisa para totos os campo .. Local, Motivo, Data???

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só fazer comparação por comparação... uma para cada campo.

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.