Ir para conteúdo

POWERED BY:

Arquivado

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

akm

Com fazer filtro em asp

Recommended Posts

Pessoal estou começando a programar em asp, estou desenvolvendo um sistema de controle de chamados, os cadastro ja estão feitos, agora quero criar as consulta para eles, exemplo: Tenho o cadastro de cliente, quero criar uma rotina em asp, que quando eu digitar o primeiro nome do meu cliente em um formulario de consulta e der um OK que me traga todos, se eu digitar Andre q me traga todos com o nome de Andre.

 

Desde ja agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja bem-vindo ao Fórum akm.

 

Você disse que já fez os cadastros. Nesse caso, acredito que já tenha conhecimentos para realizar consultas, já que o processo é parecido.

 

Então, qual seria a sua dúvida em específico? Enviar os dados para a página que exibirá a consulta? Criar a consulta e exibir os dados? Receber os dados buscados na outra página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha este exemplo, onde você pode fazer uma busca por usando o operador E ,OU e por uma palavra exata

e para trazer tudo que digitar Andre usa o LIKE.abaixo a SQL

 

SELECT * FROM tMessages WHERE (fDate LIKE '%statement%' OR fHeadline LIKE '%statement%' OR fMessage LIKE '%statement%' OR fAuthor LIKE '%statement%' OR fnota LIKE '%statement%' fnota LIKE '%statement%' ) AND (online = CBool(-1)) ORDER BY fdate DESC; 

 

<%
'------------- SEARCH
'******************************************************
'******************************************************

On Error Resume Next



PAGE_SIZE = 20  ' display number of results


strURL = Request.ServerVariables("URL") ' the URL or Query string



'------------- q = the input text


strSearch = Request.QueryString("q") ' the input text

If strSearch = "" Then

 Server.htmlencode(Trim(Request.Form("q")))

End If


strSearch = Replace(strSearch, "'", "''")


'----------- p = RESULT PAGING

IF isnumeric(Request.QueryString("p")) = True OR Request.QueryString("p") = "" THEN

				  ' Retrieve page to show or default to the first
				  If Request.QueryString("p") = ""  OR Request.QueryString("p") < 1 Then
				  	iPageCurrent = 1
				  Else
				  	iPageCurrent = CInt(Request.QueryString("p"))
			  	  End If

ELSE

iPageCurrent = 1


END IF

p = iPageCurrent



'----------------- t = SELECTED TABLE

IF isnumeric(Request.QueryString("t")) = True OR Request.QueryString("t") = "" THEN

				  ' Retrieve t

				  If Request.QueryString("t") = ""  OR Request.QueryString("t") < 1 Then
				  	searchTable = 1 '1
				  Else

				  	searchTable =  1 'CInt(Request.QueryString("t"))

			  	  End If

ELSE

searchTable = 2 '1

END IF


'------------------- m = SEARCH METHOD

IF isnumeric(Request.QueryString("m")) = True OR Request.QueryString("m") = "" THEN

				  ' Retrieve m
				  If Request.QueryString("m") = ""  OR Request.QueryString("m") < 1 Then
				  	strMethod = 2
				  Else
				  	strMethod = CInt(Request.QueryString("m"))
			  	  End If

ELSE

strMethod = 2


END IF



'---------------THE FORM
%>

                  <form method="get" action="<%= strURL %>">
					<p>
					<input type="radio" name="m" value="1" <% IF strMethod = 1 THEN response.write "checked=""checked""" END IF%> />
                    	E
                    	<input type="radio" name="m" value="2" <% IF strMethod = 2 OR strMethod = "" THEN response.write "checked=""checked""" END IF%> />
                    	OU
                    	<input type="radio" name="m" value="3" <% IF strMethod = 3 THEN response.write "checked=""checked""" END IF%> />
                   	Exato</p>

					<p><input type="text" class="input3" name="q" value="<%= Trim(strSearch) %>" /></p>

                    <p><input type="submit" value="Procura" />
                    <br /><br /></p>

                  </form>
                  <%



If strSearch <> "" Then


		Session("strSearch") = strSearch

		IF isnumeric(Request.QueryString("t")) = True OR Request.QueryString("t") = "" THEN

						  ' Retrieve t

						  If Request.QueryString("t") = ""  OR Request.QueryString("t") < 1 Then
							searchTable = 1 '1
						  Else

							searchTable = 1 'CInt(Request.QueryString("t"))

						  End If

		ELSE

		searchTable = 1' 1

		END IF




		' THE TABLES

		Select Case searchTable

			Case CInt("1")

					dbTable = "tMessages"
					'strDBPath = Server.MapPath("/blogg/blog.mdb")


			Case CInt("2")

					'dbTable = "events"
					'strDBPath = Server.MapPath("")

			Case Else

					dbTable = "tMessages"
					'strDBPath = Server.MapPath("")


		End Select



'------------------ SQL



				  'SPLIT STRING INTO ARRAYS
				  'FOR and AND or CLAUSE SQL


'----------------- SQL tMessages blog table

IF searchTable = "1" THEN
IF strMethod < 3 THEN


			If strMethod = 1 Then
			strSplit = Replace(strSearch," "," and ")
			Else
			strSplit = Replace(strSearch," "," or ")
			End If


			colTerms = split(strSplit," and ",-1,1)

			iUpperTerms = UBound(colTerms)

			strWhereClause = ""



			'FIELD CLAUSES

			nr = 0
			Do while nr <= 5

			nr = nr + 1

			searchField = CInt(nr)

			Select Case searchField

				Case CInt("1")

					strTableInClause = "fDate"

				Case CInt("2")

					strTableInClause = "fHeadline"

				Case CInt("3")

					strTableInClause = "fMessage"

				Case CInt("4")

					strTableInClause = "fAuthor"

				Case CInt("5")

					strTableInClause = "fnota"
				
				'Case Else


			End Select


				  For iLoop = LBound(colTerms) to iUpperTerms
					orTerms = split(colTerms(iLoop)," or ",-1,1)
					iUpperOrTerms = UBound(orTerms)
					strWhereClause = strWhereClause & ""

						for iOrLoop = LBound(orTerms) to iUpperOrTerms
								strWhereClause = strWhereClause & strTableInClause & " LIKE '%" & Trim(orTerms(iOrLoop)) & "%' "

							if iOrLoop < iUpperOrTerms then
								strWhereClause = strWhereClause & " OR "
							end if
						next

						strWhereClause = strWhereClause & ""

						if iLoop < iUpperTerms then
								strWhereClause = strWhereClause & " AND "
						end If

				  Next

				  if nr <= 4 then
				  strWhereClause = strWhereClause & " OR "
				  end if

		Loop


ELSE

' METHOD 3 EXACT PHASE WHERE

strWhereClause = "fDate LIKE '%" & strSearch & "%' OR fHeadline LIKE '%" & strSearch & "%' OR fMessage LIKE '%" & strSearch & "%' OR fAuthor LIKE '%" & strSearch & "%'  OR fnota LIKE '%" & strSearch & "%'"

END IF


strWhereClause2 = "WHERE (" & strWhereClause & ") AND (online = CBool(-1))"

' ORDER BY
strOrderClause = "ORDER BY fdate DESC"



	IF strMethod = 3 THEN

		strSQL = "SELECT * FROM "& dbTable &" "& strWhereClause2 &" "& strOrderClause &";"

	ELSE

		strSQL = "SELECT * FROM "& dbTable &" "& strWhereClause2 &" "& strOrderClause &";"

	END IF


END IF

Response.write strSQL

'---------- END SQL tMessages BLog




'--------- CONNECTION OPEN & EXE SQL


	Set myRecSet = Server.CreateObject("ADODB.Recordset")
	myRecSet.PageSize  = PAGE_SIZE
	myRecSet.CacheSize = PAGE_SIZE

	' constants
	adOpenStatic = 3
	adLockReadOnly = 1
	adCmdText = &H0001


	myRecSet.Open strSQL, sConn, adOpenStatic, adLockReadOnly, adCmdText


	iRecordCount = myRecSet.RecordCount
	iPageCount   = myRecSet.PageCount



			   ' THE RESULT COUNTER

				strCountRecord = iRecordCount

				If iPageCurrent = 1 Then

				  		strCount = strCountRecord - iRecordCount + 1

				Else

						strCount = iPageCurrent * PAGE_SIZE - PAGE_SIZE + 1

						'strCountRecord -  + * iPageCurrent

				End If



	If iRecordCount = 0 Then


		%>			<p>Desculpa, sua busca não retornou resultados.<br />
                    Sua Busca por - <b><%=strSearch%></b> - não retornou documentos.</p>

                  <%
	Else

		myRecSet.AbsolutePage = iPageCurrent

		If iRecordCount <= PAGE_SIZE then
		toRecord = iRecordCount
		else
		toRecord = strCount + PAGE_SIZE - 1
		End if
		If toRecord => iRecordCount then
				toRecord=  iRecordCount
		End if

		%>

                        <p>Mostrando  resultado <%=strCount%> - <%=toRecord%> de <%=iRecordCount %>. Paginas <%= iPageCurrent %> / <%= iPageCount %>. </p>
						<br /><p>
                        <%

		If iPageCurrent > 1 Then
			%>
                        <a href="<%= strURL %>?m=<%= Server.URLEncode(strMethod) %>&t=<%= Server.URLEncode(searchTable) %>&q=<%= Server.URLEncode(strSearch) %>&p=<%= iPageCurrent - 1 %>" title="Previous">
                        ‹‹</a>
                        <%
		End If


		For I = 1 To iPageCount
			If I = iPageCurrent Then

			%>

                        <%= I %>
                        <%
			Else
				%>
                        <a href="<%= strURL %>?m=<%= Server.URLEncode(strMethod) %>&t=<%= Server.URLEncode(searchTable) %>&q=<%= Server.URLEncode(strSearch) %>&p=<%= I %>" title="<%= I %>"><%= I %></a>
                        <%
			End If
		Next 'I

		If iPageCurrent < iPageCount Then
			%>
                        <a href="<%= strURL %>?m=<%= Server.URLEncode(strMethod) %>&t=<%= Server.URLEncode(searchTable) %>&q=<%= Server.URLEncode(strSearch) %>&p=<%= iPageCurrent + 1 %>" title="Next"> ››</a>
                        <%
		End If
		%></p>

        <%

'----------------THE RESULT LOOP


		Do While Not myRecSet.EOF And myRecSet.AbsolutePage = iPageCurrent


					intNumMatches = 0
					allregText = ""
					regWriteOut = ""

					If strSearch = " " then
						strSearch = ""
					End if

					Set objRegExp = New RegExp
					objRegExp.Global = True
					objRegExp.IgnoreCase = True


					If dbTable = "tMessages" then
					allregText = myRecSet.Fields("fDate").Value & " " & myRecSet.Fields("fHeadline").Value & " " & myRecSet.Fields("fMessage").Value & " " & myRecSet.Fields("fAuthor").Value
					End If


					allregText = Replace(allregText, "<", "", 1, -1, 1)
					allregText = Replace(allregText, ">", "", 1, -1, 1)
					allregText = UTFtoISO(allregText)

					If strMethod = 3 then

					'Set the pattern to search for
					objRegExp.Pattern = strSearch

					'Search the file for the phrase
			 		Set objMatches = objRegExp.Execute(allregText)

					'Get the number of times the phrase is matched
					intNumMatches = objMatches.Count

					End if

					If strMethod < 3 then

					sarySearchWord = Split(strSearch, " ")
					For intSearchLoopCounter = 0 to UBound(sarySearchWord)

					'Set the pattern to search for
					objRegExp.Pattern = "" & sarySearchWord(intSearchLoopCounter) & ""

					'Search the file for the phrase
					Set objMatches = objRegExp.Execute(allregText)

					intNumMatches = intNumMatches + objMatches.Count

					Next
					End if



			 		If intNumMatches => 1 Then

					If intNumMatches > 1 then
					regWriteOut = "" & intNumMatches & " hits."
					Else
					regWriteOut = "" & intNumMatches & " hit."
					End If

			 		End If

					Set objRegExp = Nothing



			%>


					<% IF dbTable = "tMessages" THEN %>
					<p><br /><br />
					<%=strCount%>. <a href="default.asp?id=<%= myRecSet.Fields("id").Value %>" title="<%=myRecSet.Fields("fHeadline").Value%>"><%= myRecSet.Fields("fHeadline").Value %></a>
					<br /><%= RemoveHTML(Left(myRecSet.Fields("fMessage").Value,instrrev(Left(myRecSet.Fields("fMessage").Value,280),"")))%>
					<br />
					Postado: <%= year(myRecSet.Fields("fdate").Value)  & "-" & right("00" & cstr(month(myRecSet.Fields("fdate").Value)),2) & "-" & right("00" & cstr(day(myRecSet.Fields("fdate").Value)),2) & ". " & regWriteOut%>
					</p>
					<% END IF%>


           <%


						strCount = strCount + 1
			myRecSet.MoveNext
		Loop


'----------------THE RESULT LOOP END
		%>
                    	<br /><br /><p>
                        <%

		If iPageCurrent > 1 Then
			%>
                        <a href="<%= strURL %>?m=<%= Server.URLEncode(strMethod) %>&t=<%= Server.URLEncode(searchTable) %>&q=<%= Server.URLEncode(Session("strSearch")) %>&p=<%= iPageCurrent - 1 %>" title="Previous">‹‹</a>
                        <%
		End If


		For I = 1 To iPageCount
			If I = iPageCurrent Then
				%>

                        <%= I %>
                        <%
			Else
				%>
                        <a href="<%= strURL %>?m=<%= Server.URLEncode(strMethod) %>&t=<%= Server.URLEncode(searchTable) %>&q=<%= Server.URLEncode(Session("strSearch")) %>&p=<%= I %>" title="<%= I %>"><%= I %></a>
                        <%
			End If
		Next 'I

		If iPageCurrent < iPageCount Then
			%>
                        <a href="<%= strURL %>?m=<%= Server.URLEncode(strMethod) %>&t=<%= Server.URLEncode(searchTable) %>&q=<%= Server.URLEncode(Session("strSearch")) %>&p=<%= iPageCurrent + 1 %>" title="Next">››</a>
                        <%
		End If
		%>

                    <%

		End If

%></p>
<%

		' CLOSE & DISPOSE

		myRecSet.Close
		Set myRecSet = Nothing
		End If



'---------------- SEARCH END


'******************************************************
'******************************************************
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado xanburzum pela dica... qualquer coisa te dou um crito

 

Seja bem-vindo ao Fórum akm.

 

Você disse que já fez os cadastros. Nesse caso, acredito que já tenha conhecimentos para realizar consultas, já que o processo é parecido.

 

Então, qual seria a sua dúvida em específico? Enviar os dados para a página que exibirá a consulta? Criar a consulta e exibir os dados? Receber os dados buscados na outra página?

 

 

Minha pricipal duvida é Criar a Consulta e exibir ela, tipo se no meu cadastro tem 10 cliente com nome de Andre, quando digitar andre que me tragar todos que contenha Andre no nome.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Xamburzum postou o que você precisa, que é a clausula like no sql, você tera um formulario e uma parte para receber os dados do formulario e coloca-los no sql que realizará a consulta, usando o like como parametro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O operador LIKE é usado em uma cláusula WHERE para pesquisar um padrão especificado em uma coluna.

"Select * FRom Tabela Where Nome Like '%" & vNome & "%'"

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.